24小时热门版块排行榜    

查看: 125  |  回复: 4
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

cronquist

[交流] 求助数据结构与算法的两道习题!

 对于希而排序来说,给定的一组排序数值为:(49,38,65,97,
  13,27,49,55,04),则第2次排序后的结果为__.

A.(04,13,27,49,49,38,55,65,76,97)
B.(04,13,27,38,49,49,55,65,76,97)
C.(13,04,49,38,27,49,55,65,97,76)
D.(13,27,49,55,04,49,38,65,97,76)

请教具体怎么算法,过程是怎样的?怎么会出现76?

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cronquist

学习了
引用回帖:
Originally posted by forusonly at 2007-9-16 09:55 AM:
1.增量序列的选择

Shell排序的执行时间依赖于增量序列。

好的增量序列的共同特征:

① 最后一个增量必须为1;

② 应该尽量避免序列中的值(尤其是相邻的值)互为倍数的情况。

5楼2007-09-20 11:51:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

veracity

木虫 (正式写手)

★ ★ ★ ★ ★
cronquist(金币+5,VIP+0):谢谢!继续请教:为何初始时候d=5,后面第一躺d=3而不等于4或者其他呢?有规定吗?
题目出错了,少给了76
网上查到的,应该就是你的原题,排版有点乱,你注意d值,应该看得懂
希尔排序(缩小增量法)   
  排序过程:先取一个正整数d1    
  初始:d=5   
          49   38   65   97   76   13   27   49*   55   04   
          |---------------|   
                  38                         27   
                  |--------------|   
                        65                         49*      
                        |--------------|   
                            97                             55   
                              |---------------|   
                                    |76-------------04|   
  一趟结果   
   
  d=3   13   27   49*55   04   49   38   65     97     76      
            |--------|--------|----------|   
                27               04               65   
                  |--------|-------|   
                        49*             49                 97   
                          |--------|---------|   
  二趟结果   
          13   04   49*38   27   49   66   65   97   76   
  d=1   
  三趟结果   
          04   13   27   38   49*49   55   65   76   97

[ Last edited by veracity on 2007-9-14 at 20:28 ]
2楼2007-09-14 20:26:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cronquist

谢谢高人!
还有几个问题就是
为何初始时候d=5?
后面第一躺d=3而不等于4或者其他呢?有规定吗?
3楼2007-09-15 23:25:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

forusonly

铜虫 (正式写手)

被emuch忽悠了

1.增量序列的选择

Shell排序的执行时间依赖于增量序列。

好的增量序列的共同特征:

① 最后一个增量必须为1;

② 应该尽量避免序列中的值(尤其是相邻的值)互为倍数的情况。
4楼2007-09-16 09:55:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见