简单选择
不稳定
最差时间:O(n)
平均时间:O(n)
最好时间:O(n)
空间:O(1)...
分类:
其他好文 时间:
2014-09-04 19:15:34
阅读次数:
194
这是我的博文系列《内部排序算法》的第一篇。所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。所谓内部排序,是指在排序过程中,若整个文件都是放在内存中处理,排序时不涉及数据的内、外存交换(外排序的定义则相反)。
内部排序法按照策略可以划分为五类:插入排序、选择排序、交换排序、归并排序和分配排序。待排文件的存储方式采用顺序表(或直接用向量)作为存储结构(其他的...
分类:
其他好文 时间:
2014-08-26 00:31:45
阅读次数:
352
描述给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中两路合并排序算法进行排序,并输出排序最后结果的相应序列。输入共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤100000,每个元素值范围为[0,100000]输出一行,输出排序结果。样例输入7483668721248...
分类:
其他好文 时间:
2014-08-25 22:47:04
阅读次数:
270
外排序
外排序问题的出现,主要是因为内存不够。当需要排序的数据量过多,以至于无法一次性把所有的数据都放入内存,这导致了外排序问题的出现。解决大数据量排序的方法是:先分块排序,后进行块合并。
外排序步骤
把原数据分成几段读入内存,以至于每一块都可以完整的在内存中进行排序,排序好后,写入外部存储设备。
归并已排序好的数据块。
这就是归并排序在外排序中的应用。
对每块数据进行排序,可以使用各种内排序方法:快速排序、归并排序、堆排序等。这个比较简单,下面模拟一个对排序好的数据块进行归并的过程。...
分类:
其他好文 时间:
2014-08-23 19:07:41
阅读次数:
201
归并排序是将两个或两个以上有序子序列归并成一个有序数列的排序的排序算法,其时间复杂度O(n*log n)仅次于快速排序。在内排序中,通常采用的是2-路归并,即每两个子序列为一组进行排序。归并排序的原理是:设初始序列含有N个记录,则可以看成N个有序的子列,每个子序列的长度为1,然后两两归并,得到N/2个长度为2或1的子序列,再两两归并,如此重复的归并下去,直到到达一个有序的序列为止。
设初始数组为...
分类:
其他好文 时间:
2014-07-23 13:22:56
阅读次数:
231
部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。我们一般提到排序都是指内排序,比如快速排序,堆排序,归并排序等,所谓内排序就是可以在内存中完成的排序。RAM的访问速度大约是磁盘的25万倍,我...
分类:
其他好文 时间:
2014-07-12 08:43:31
阅读次数:
313
NOJ——1062直接插入排序时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 总提交:446 测试通过:212描述给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中直接插入排序算法进行排序,并输出排序过程中每趟及最后结果...
分类:
其他好文 时间:
2014-07-01 21:00:49
阅读次数:
189
快速排序时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:653 测试通过:297描述给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中快速排序算法进行排序,并输出排序最后结果的相应序列。输入共两行,第一行给出排序元素...
分类:
其他好文 时间:
2014-06-26 15:05:30
阅读次数:
302
直接插入排序#include typedef int Keytype;typedef struct{ Keytype key; int data;}RecType;void InsertSort(RecType R[],int n){ int i; int j; RecType temp; f...
分类:
其他好文 时间:
2014-06-21 09:52:18
阅读次数:
223
简单选择排序时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:836 测试通过:259描述给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中的简单选择排序算法进行排序,并输出排序过程中每趟及最后结果的相应序列。输入共两...
分类:
其他好文 时间:
2014-06-14 19:04:13
阅读次数:
253