1、二叉树的遍历 遍历:迭代所有元素一遍。 树的遍历:对树中所有的元素不重复的访问一遍,也成扫描 广度优先遍历:层序遍历 深度优先遍历:前序、中序、后续遍历。 遍历序列:将树中所有元素遍历一遍后,得到的元素序列。将层次结构转换成了线性结构。 2、层序遍历 按照数的层次,从第一层开始,自左向右遍历元素 ...
分类:
编程语言 时间:
2018-11-13 00:18:50
阅读次数:
302
size - list section sizes and total size是GNU Development Tools,列出目标文件各个部分所占的字节数,当不输入目标文件时,将会把a.out文件作为缺省输入文件名。 输出各段说明: text段:正文段字节数大小 data段:包含静态变量和已经初 ...
分类:
系统相关 时间:
2018-11-08 13:18:14
阅读次数:
269
冒泡排序,不多说,两次for循环比较相邻两个元素的大小,然后进行交换。 选择排序,我们第一次for循环遍历所有元素,并把当前元素假设为最小的元素,然后再一个for循环去寻找真正最小的元素进行交换,这样每次我们都能找到未排序元素中的最小的元素。 插入排序,我们第一个for循环遍历所有元素,保存当前元素 ...
分类:
编程语言 时间:
2018-11-03 16:26:56
阅读次数:
100
堆是一个完全二叉树(对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树),常用来利用树的性质进行排序,即堆排序。 排序过程: 0.输入一个集合R[0,n],先把该集合元素构成树(分层,第一个元素在第一层,依次按完全二叉树性质放 ...
分类:
编程语言 时间:
2018-11-01 00:54:27
阅读次数:
211
堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。 堆(英语:heap)是计算机科学 ...
分类:
编程语言 时间:
2018-10-30 14:55:33
阅读次数:
197
题目 求数组中两两相加等于20的组合。 例:给定一个数组[1, 7, 17, 2, 6, 3, 14],这个数组中满足条件的有两对:17+3=20, 6+14=20。 解析 分为两个步骤: 1. 先采用堆排序或快速排序对数组进行排序,时间复杂度为O(nlogn)。 2. 然后对排序的数组分别从前到后 ...
分类:
编程语言 时间:
2018-10-28 22:32:33
阅读次数:
421
堆排序(Heap Sort) 是一棵具有以下性质的 : 大顶堆:每个结点的值都大于或等于其左右孩子结点的值 小顶堆:每个结点的值都小于或等于其左右孩子结点的值 的主要思想: 将待排序列构造成一个大顶堆,此时堆顶元素就是整个序列的最大值,将堆顶元素与堆数组的末尾元素进行交换。然后将剩余的n 1个元素重 ...
分类:
编程语言 时间:
2018-10-28 12:50:17
阅读次数:
144
# s = input("请输入一个数:")## # 验证# if int(s) > 999 or int(s) lst[i+1]:# lst[i], lst[i+1] = lst[i+1], lst[i]# print(lst)# 核心思想: 互换# 快排,归并,堆排序, 希尔排序........... ...
分类:
其他好文 时间:
2018-10-27 00:06:51
阅读次数:
126
1.堆(二叉堆):可以视为一棵完全的二叉树,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示,每一个结点对应数组中的一个元素 2.给出某个结点的下标,可以计算出父结点的和孩子结点的下标; parent(i)=floor(i/2) left(i)=2i right=2i+1 3.最大堆和最小... ...
分类:
编程语言 时间:
2018-10-22 20:44:23
阅读次数:
143
/** * * * Copyright 1994 JsonInternational * All rights reserved. - https://github.com/Jasonandy/Java-Core-Advanced * Created by Jason * * */ package ... ...
分类:
编程语言 时间:
2018-10-20 14:58:23
阅读次数:
180