Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40201
  • 博文数量: 37
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 372
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-12 23:27
文章分类

全部博文(37)

文章存档

2014年(5)

2013年(32)

我的朋友

分类: C/C++

2013-10-12 23:54:35

很少用到基数排序,今天碰到了,简单记下。

基数排序可按LSD(Least significant digital)最低位优先和MSD(Most significant digital)最高位优先两种方式进行。

举例,排序序列25 79 63 42 78.
LSD最低位优先:
25                        2   43                         2   25
79                        3   63                         4   43
63    =====》    5    25     =====》    6   63
42                        8   78                         7   78   79
78                        9   79                          
MSD最高位优先:
25                        2   25                        
79                        4   43                         
63    =====》    6    63    
42                        7   79 78   =====》   8     78
78                                                             9     79

LSD每次都要把整个序列都串起来再按高一位排序。MSD每次都只在子桶内再按低一位排序。
阅读(483) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:C中float数在内存中表示

给主人留下些什么吧!~~