有关基数排序的疑惑

xero_123 2009-08-19 03:32:10
在基数排序的过程中,利用的是在最低位置开始进行排序,为什么不像我们常理认为的在最高位置进行排序,在算法导论里面进行了介绍,可是小弟没有怎么看明白,各位前辈谁有想法麻烦介绍一下
...全文
113 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
urakvv7 2009-08-22
  • 打赏
  • 举报
回复
又看到“卡片排序器一次只能查看一个列”这句话,∴理解如下:
如果开始从最高位置进行排序,接着对次高位置进行排序,则
一次只能查看一个列
∴单看次高位置不能决定数的排序位置,还要查看器最高位置的排序信息
反之,从最低位置开始排序,接着对次低位置进行排序,则不用去关心最低位置信息,
∵相比之下,次低位置的权值要高
urakvv7 2009-08-22
  • 打赏
  • 举报
回复
我也看得不是很明白。
《算法导论》里有这么一段话:“从直觉上来看,人们可能会觉得应该按照最高有效位进行排序,然后再对每个盒子中的数递归地排序,最后再把结果合并起来。不幸的是,为排序每一个盒子中的数,10个盒子中的9个必须先放在一边,这个过程中产生了许多要加以记录的中间卡片堆(见练习8.3-5)。”
哪位大侠解释下这其中的玄机?为什么首先按最低有效位数字进行排序不会产生中间卡片堆?
xero_123 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 starcat 的回复:]
我看《数据结构与算法分析-C语言描述》里阐述这个问题,好像很好理解阿。
[/Quote]

麻烦详细介绍一下
starcat 2009-08-21
  • 打赏
  • 举报
回复
我看《数据结构与算法分析-C语言描述》里阐述这个问题,好像很好理解阿。
destinyac 2009-08-21
  • 打赏
  • 举报
回复
基数排序的从低位到高位排序的可以这么考虑:
最后一次排序的时候,所依据的肯定是权值高的。就像比较两个数一样,如果高位大的话,低位就不用看。


如果从高位到低位排序,可以用递归实现。思想就是分组了。
acdbxzyw 2009-08-19
  • 打赏
  • 举报
回复
两种方向都可以。
只记得在这里从高位开始排很麻烦。消耗太大。
hyram 2009-08-19
  • 打赏
  • 举报
回复
从后往前排,每次准备10张表,排好以后可以合为一张(因为前一位数大的数必然大),整个排序过程我们只需要10张表。
如果从前往后,每次准备10张表,排好以后必须再把每个表分成10张表(无法合并),这样空间消耗太大,无法承受。

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧