排序思想:每次排序区间的第一个元素作为基准,把此区间内比基准大的元素放在基准右边,比基准小的元素放在基准左边。
性能分析:从空间复杂度方面,快速排序是递归的,每层递归调用时的指针和参数均要用栈来存放,递归调用次数与二叉树的深度一致。因此,在理想情况下,及每一趟排序都将记录序列均匀的分隔成长度接近的两个子序列,则需要栈空间为O(logn);在最坏情况下,即每趟排序之后,基准元素位置均偏向子序列的一...
分类:
其他好文 时间:
2014-06-17 21:55:05
阅读次数:
201
1、C++编成求二叉树的深度;int binTreeDepth(link *head){ int
depthl=0,depthr=0; if(head==null) return 0; else{ if ((head->left)!=null)
depthl = 1 + binTreeDepth(h...
分类:
其他好文 时间:
2014-05-26 02:48:07
阅读次数:
266
多的不解释了,这里有两种解法。第一种:一般的解法。第二种:大神的解法,代码简洁高效。
分类:
其他好文 时间:
2014-05-19 13:33:31
阅读次数:
198
/**
* 需求:堆排序的实现
* 知识储备:
* 满二叉树:除叶子结点外的所有结点均有两个子结点,所有叶子结点必须在同一层上。
* 完全二叉树:
* 若二叉树的深度为h,除第h层外,其它各层(1~h-1)的节点数都达到最大个数,第h层所有结点都连续集中在最左边。
* 完全二叉树是有满二叉树而引出来的,对于深度为K的,有N个结点的二叉树,当且仅当每一个结点都与深度为K的满二叉树中编号从...
分类:
其他好文 时间:
2014-05-15 23:48:56
阅读次数:
477