python中希尔排序的原理是什么

python中希尔排序的原理是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联公司-专业网站定制、快速模板网站建设、高性价比田家庵网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式田家庵网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖田家庵地区。费用合理售后完善,十多年实体公司更值得信赖。

python的五大特点是什么

python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。

1、概念

希尔排序是插入排序的最佳版本,也称为减少增量排序。把列表分成n组,比较各组对应的要素的大小,交换位置。

2、原理分析

将数组列在一个表格中,并将数组分别插入排序,重复这个过程,但每一次都要用更长的列(步骤更长,列数更少)。

最终整个表格只有一列。把数组转换成表格是为了更好地理解这个算法,算法本身还是用数组来排序。

3、实例

def shll_sort(alist):
n = len(alist)
gap = n//2 #定义初始步长,要取整数,否则下面for循环会报错'float' object cannot be interpreted as an integer
while gap>0:#按步长进行插入排序
for i in range(gap,n):
j = i
while j>=gap and alist[j-gap]>alist[j]:
alist[j-gap],alist[j]=alist[j],alist[j-gap]
j=j-gap
gap = gap//2#得到新的步长,注意是在while后面的缩进

看完上述内容,你们掌握python中希尔排序的原理是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


标题名称:python中希尔排序的原理是什么
转载来于:http://azwzsj.com/article/gihshj.html