摘要:
本博文摘自伍迷老师的《大话数据结构》,想学数据结构的,大大的推荐此书... 事实上,目前还没有十全十美的排序算法,有优点就会有缺点,即使是快速排序法,也只是在整体性能上优越,它也存在排序不稳定、需要大量辅助空间、对少量数据排序无优势等不足。因此我们就来从多个角度来剖析一下提到的各种排序的长与短。 我们将7种算法的各种指标进行对比,如表9‐10‐1所示。 表9‐10‐1排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n2) O(n) O(n2) O(1) 稳定简... 阅读全文
摘要:
归并排序(Merging Sort)就是利用归并的思想实现的排序方法。它的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到⌈n/2⌉(⌈x⌉表示不小于x的最小整数)个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为n的有序序列为止,这种排序方法称为2路归并排序。代码:#define MAXSIZE 10 /* 用于要排序数组个数最大值,可根据需要修改 */typedef struct{ int r[MAXSIZE+1]; /* 用于存储要排序数组,r[0]用作哨兵或临时变量 */ int length; ... 阅读全文