考试学习中心网

咨询投诉0931-8254357
主办单位:元海德教育宗旨:富家 兴教
0931-8254357

当前位置:主页 > 学习中心新 > 第二学位 >

第六节 - 分配排序

发布时间:2020-09-20 11:11来源:未知

第六节 分配排序

分配排序的基本思想:排序过程无须比较关键字,而是通过"分配"和"收集"过程来实现排序。常用的分配排序有箱排序和基数排序。

一、箱排序

1、箱排序的基本思想

箱排序也称桶排序,其基本思想是:设置若干个箱子,依次扫描待排序的记录R[0],R[1],…,R[n-1],把关键字等于k的记录全都装入到第k个箱子里(分配),然后按序号依次将各非空的箱子首尾连接起来(收集)。

【例】要将一副混洗的52张扑克牌按点数A<2<…<J<Q<K排序,需设置13个"箱子",排序时依次将每张牌按点数放入相应的箱子里,然后依次将这些箱子首尾相接,就得到了按点数递增序排列的一副牌。

2、算法简析

箱排序的时间复杂度为 O(n)。箱排序是稳定排序,箱排序只适用于关键字取值范围较小的情况,否则所需要箱子的数目太多,会导致存储空间的浪费和计算时间的增长。

二、基数排序

基数排序(Radix Sort)是对箱排序的改进和推广。

1、基数排序的思想

基数排序的基本思想是:从低位到高位依次对Kj(j=d-1,d-2,…,0)进行箱排序。在d趟箱排序中,所需的箱子数就是基数rd,这就是"基数排序"名称的由来。

2、实例分析

【例】已知关键字序列{278,109,063,930,589,184,505,269,008,083},

写出基数排序(升序)的排序过程。

排序过程示意表

3、算法分析

基数排序的时间复杂度是O(d*(rd+n))。其中rd是基数,d是关键字的位数,n是元素个数。基数排序所需的辅助存储空间为O(n+rd)。基数排序是稳定的。


免费咨询

  • 甘肃: QQ
  • 四川: QQ
  • 山西: QQ
  • 陕西: QQ
  • 0931-8254357