简单选择和树形选择954简单选择排序算法分析最好-浙江工商大学.PPT

简单选择和树形选择954简单选择排序算法分析最好-浙江工商大学.PPT

简单选择和树形选择954简单选择排序算法分析最好-浙江工商大学

9.8 分配类排序——桶排序 一般情况下每个桶中存放多少个关键字相同的记录是无法预料的,故桶的类型应设计成链表为宜。 为保证排序是稳定的,分配过程中装箱及收集过程中的连接必须按先进先出原则进行。比如,人队操作将其插入该桶尾部,而出队时从桶顶部开始取。 分配过程的时间是O(n);收集过程的时间为O(m) (采用链表来存储输入的待排序记录)。因此,桶排序的时间为O(m+n)。若箱子个数m的数量级为O(n),则桶排序的时间是线性的,即O(n)。 9.8.2 基本的桶排序 9.8 分配类排序——桶排序 假如关键字值不是离散的,而是连续的,这就意味着有无数个关键字取值,为此,需要一个桶中的记录有不同的关键字值。这就产生了扩展的桶排序。 9.8.2 基本的桶排序 9.8 分配类排序——桶排序 基本思想: 把[0,1)划分为n个大小相同的子区间,每一子区间是一个桶。然后将n个记录分配到各个桶中。 由于同一桶中的记录其关键字不尽相同,所以必须采用关键字比较的排序方法(通常用插入排序)对各个桶进行排序,然后依次将各非空桶中的记录连接(收集)起来即可。 如果关键字的取值不是在[0,1),那么可以先进行归一化处理映射到[0,1),然后再进行上述步骤。 9.8.3 扩展的桶排序 9.8 分配类排序——桶排序 算法实例: 对R[0..9]中的关键字为(0.78,0.17,0.39,0.26,

文档评论(0)

1亿VIP精品文档

相关文档