堆排序是一种具有合并排序和插入排序共同优点的排序方法。它的时间复杂度为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
//堆排序//①维护堆 void max_heapify(int *ptr,int index,int len){ index = index + 1; int left = index ptr[index - 1]) largest = left; if(righ...
分类:
其他好文 时间:
2014-08-26 11:19:16
阅读次数:
186
外排序
外排序问题的出现,主要是因为内存不够。当需要排序的数据量过多,以至于无法一次性把所有的数据都放入内存,这导致了外排序问题的出现。解决大数据量排序的方法是:先分块排序,后进行块合并。
外排序步骤
把原数据分成几段读入内存,以至于每一块都可以完整的在内存中进行排序,排序好后,写入外部存储设备。
归并已排序好的数据块。
这就是归并排序在外排序中的应用。
对每块数据进行排序,可以使用各种内排序方法:快速排序、归并排序、堆排序等。这个比较简单,下面模拟一个对排序好的数据块进行归并的过程。...
分类:
其他好文 时间:
2014-08-23 19:07:41
阅读次数:
201
排序常用的算法有:插入算法(直接插入算法、折半插入算法、希尔算法)、选择算法(简单选择算法、堆排序算法)、快速算法(冒泡排序、快速排序算法)以下程序给出了各种算法的实现,其接口为voidsort(int*array,intlen),每个文件实现一个算法,最后和main.c文件编译实现。1、直..
分类:
其他好文 时间:
2014-08-22 18:12:10
阅读次数:
273
快速排序是排序算法中最受青睐的算法之一,相对于堆排序和归并排序而言,即便具有相同的复杂度O(NlogN)。面对大数据而言,快排的效率也更高。一般而言,数据结构中的排序算法都是采取的双向指针法。在之前写的一篇博文《排序算法(初级版)之快排、归并、堆排序》中已经有过总结。这里就不再啰嗦了。本篇博文主要讲...
分类:
其他好文 时间:
2014-08-22 17:48:39
阅读次数:
388
堆排序分析:
最优时间复杂度:O(nlog2n)
最坏时间复杂度:O(nlog2n)
平均时间复杂度:O(nlog2n)
空间复杂度:O(1)
稳定性:不稳定
C语言代码...
分类:
其他好文 时间:
2014-08-21 19:23:44
阅读次数:
182
实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。...
分类:
其他好文 时间:
2014-08-21 09:52:13
阅读次数:
170