搜索

新手问“希尔排序法”谁了解不要复制粘贴

gecimao 发表于 2019-07-22 16:35 | 查看: | 回复:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  希尔排序是一种插入排序,在每趟排序时都依据一定的步长使用插入法将元素排为基本有序

  一般会取序列长度的一般作为第一个步长,然后每趟将步长减半,最终到步长为1使得整个序列有序

  由于起始的步长较长,在某些特定场景下可以使得元素可以减少比较即被移动到较后的位置。从而减少比较和移动次数。

  那如图,d等于5时可以取(48.13)(37.26)(64.50)(96.54)(75.5)对吧

  那如果到了d等于2时,书上怎么就取成了(13.54.37.75)(26.5.64)(50.48.96)呢

  而且书上还说要把所有距离为二的倍数的元素放在一组中,那就不能距离为二划分吗,况且它还是以距离为3划分的!

  而且书上还说要把全部数据元素分成与d相等的组数!但第二次分组时,它却分成了三组!这是啥道理啊!!

  您看他最终做了四趟希尔排序,选择的步长分别为5,3,2,1。所以此处应该是

  希尔排序步长的选取并非是一定的,可以依据需要选择不同的方法进行步长的选取

  步长的选择会影响希尔排序的效率,所以对于不同的情况选择不同的步长选择方法

  是有意义的,步长递减的速度也可以依据需要进行,例如对于基本有序的序列可以

  考虑更快的收敛。对于基本无序的序列可以考虑更慢的收敛(当然不是越慢越好)

本文链接:http://baumseelen.com/duipaixu/706.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部