• 全部
  • 问答

菜鸟请教一道算法题

sdnd2000 2008-04-20 07:13:34
Given an array of n elements with arbitrary random valus, we want to obtain the smallest logn elements in sorted order. Outline how each of hte following methods be adapted to solve this problem( if appropriate), provide a very brief ex[lanation. And Analyze the worst-case time complexity for each case

1. Radix-sort
2. Bubble-sort
3. Heap-sort
4. linear-time selection( median of medians for pivot)
5. Insertion-sort

我不太清楚用基数排序该怎样去排,希望高手指点。
...全文
162 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sdnd2000 2008-05-03
基数和桶排序排序应该不行吧
回复
sdnd2000 2008-05-03
谢谢
回复
meiZiNick 2008-05-01
关注 接分
回复
UltraBejing 2008-05-01
我也想了解,谢谢LZ.
回复
East271536394 2008-04-21
根据基数r,搞一个r队列,找一个最低位,将这个值入队列,
后面的是一样的,同理
回复
tailzhou 2008-04-21
"Given an array of n elements with arbitrary random valus"

这里没有对元素的数据类型与范围进行任何限定,
我认为用 Radix-sort 方法是 not appropriate的;
回复
亲一 2008-04-21
学习下.
回复
可口可乐 2008-04-21
Heap-sort: Heap建好后,取logn个最小值就可以了
回复
可口可乐 2008-04-21
Bubble-sort: 把logn个数冒泡上去就行了,即冒泡排序的第一个for循环次数改一下就行了
回复
aayzaayz 2008-04-21
请参看 数据结构 严蔚敏
回复
sdnd2000 2008-04-20
那这题该怎么做啊?是找logn个最小的数
回复
Yoon_EunHae 2008-04-20
基数排序的基本思想是:从低位到高位依次对Kj(j=d-1,d-2,…,0)进行箱排序。在d趟箱排序中,所需的箱子数就是基数rd,这就是"基数排序"名称的由来。
100以内的数排序 2次装箱 一次拆箱就完成了
回复
sdnd2000 2008-04-20
这个是对radix的排法是吧,好像有道理,但还是不是很清楚。能说说其它几种排法吗?
回复
可口可乐 2008-04-20
从最高位看起,去掉那些明显大的数,保留一些明显需要的数
如几个数的最高为是:0, 1, 1, 1, 3, 4, 5, 6
3, 4, 5, 6开头的那些数明显可以去掉,而0开头的数明显可以保留,这时得到1个结果。

再对剩下的数,看第二高位,
如对剩下以1开头的3个数看第二高位

重复此过程直到得到logn个数为止,
再对这logn个数进行排序

回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-20 07:13
社区公告
暂无公告