(五)、基数排序
前面所讨论的排序算法均是基于关键字之间的比较来实现的,而基数排序(radix sort)是通过“分配”和“收集”过程来实现排序,不需要进行关键字间的比较,是一种借助于多关键字排序的思想对单关键字排序的方法。
基数排序有两种,即最低位优先(least sig gnificant digit first,LSD)和最高位优先(most significant digit first,MSD),其原理是相同的,主要讨论前者。
有几位就分类几趟,辅助空间为创建队列r,即O(n)(是一种稳定的排序方法,O(d(n+r)) )
(六)、稳定性判断
注意:“快”指快速排序,“些”指希尔排序,“选’指简单选择排序,“堆”指堆排序,这4种是不稳定的,其他自然都是稳定的。
注意:冒泡排序、选择排序第一趟排序后肯定有一个最值元素来到序列的一端。
选择排序、快速排序、堆排序每次排序能确定一个关键字的最终位置
(七)、外排序
- 磁盘排序
对存放在磁盘中的文件进行排序属于典型的外排序,称为磁盘排序(disk sort)。由于磁盘是直接存取设备,读写一个数据块的时间与当前读写头所处的位置关系不大,所以可以通过读写数据块的次数来衡量存取时间。通过相关算法将待排序文件中的记录一部分一部分地调入内存处理,产生若干个文件,它们都是有序的,称为顺串(runs)。然后再次将这若干文件中的记录调入内存,通过相关归并算法产生一个有序文件。