/*堆排序(大顶堆)2011.9.14*/#include#includeusingnamespacestd;voidHeapAdjust(int*a,inti,intsize)//调整堆{intlchild=2*i;//i的左孩子节点序号intrchild=2*i+1;//i的右孩子节点序号int...
分类:
其他好文 时间:
2014-08-31 18:28:11
阅读次数:
207
大根堆排序的基本思想: 1) 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区; 2) 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换, 由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1].keys≤R[n].key; 3) 由于交换...
分类:
其他好文 时间:
2014-08-30 20:22:29
阅读次数:
168
#includevoid AdjustMinHeap(int *a,int pos,int len){ int temp,child; for(temp=a[pos];pos*2+1=0;i--) AdjustMinHeap(array,i,len-1); for(i=le...
分类:
其他好文 时间:
2014-08-30 17:36:59
阅读次数:
147
/*堆排序(大顶堆)2011.9.14*/#include#includeusingnamespacestd;voidHeapAdjust(int*a,inti,intsize)//调整堆{intlchild=2*i;//i的左孩子节点序号intrchild=2*i+1;//i的右孩子节点序号int...
分类:
其他好文 时间:
2014-08-29 19:42:38
阅读次数:
254
本章节主要证明对包含n个元素的输入序列来说,任何比较排序在最坏情况下都要经过omega(nlgn)次比较。从而证明归并排序和堆排序是渐近最优的。同时,介绍了三种线性时间复杂度的排序算法:计数排序、基数排序和桶排序。1. 排序算法的下界在确定排序算法的下界时,借助决策树模型。决策树模型是一棵完全二叉树...
分类:
其他好文 时间:
2014-08-29 18:01:18
阅读次数:
239
树-堆结构练习——合并果子之哈夫曼树
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。
每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,...
分类:
其他好文 时间:
2014-08-29 13:06:57
阅读次数:
203
最近忙着复习找工作,熟悉了下排序算法,动手写了一下,发现有些问题的边界条件还是没有考虑清楚,不过好在调试成功。不稳定排序:堆排序,快速排序,希尔排序;稳定排序:插入排序,冒泡排序,选择排序,归并排序,基数排序等。插入排序算法代码:void InsertSort(int A[],int n){ ...
分类:
其他好文 时间:
2014-08-28 19:39:25
阅读次数:
287
过程记录4个月前C语言版的七大排序算法实践让我在写C++版时轻车熟路。特别是冒泡,插入,希尔,选择这四种排序不用调试即运行成功。输出的效果与C语言做的版本完全一样,其中令我印象深刻的是,cout对浮点的处理远不如printf简单明了。非常让开发者难受。写C++版时有所改进。#define sortf...
分类:
其他好文 时间:
2014-08-28 12:55:29
阅读次数:
250
堆排序是一种具有合并排序和插入排序共同优点的排序方法。它的时间复杂度为O(nlgn)...
分类:
编程语言 时间:
2014-08-27 23:30:18
阅读次数:
271
原理参考:http://blog.csdn.net/morewindows/article/details/6709644/**********************************************************/
//堆插入
void MinHeapfixup(int a[],int n,int num){
a[n] = num;
int j,temp;
te...
分类:
其他好文 时间:
2014-08-26 13:48:06
阅读次数:
187