Python如何排序,python顺序排列函数

  Python如何排序,python顺序排列函数

  如果要求科学计算,属于插入类排序的减增量法是什么?你知道吗?你知道吗?其实是希尔的排序法。Hill排序是Donald Shell在1959年提出的一种排序算法。Hill排序也是一种插入排序,将整个序列分成几个小的子序列进行插入排序。它是简单插入排序改进后的更高效版本,也称为约简增量排序,是最早突破O(n2)的算法之一。本文将向您介绍python中的Hill sort及其使用代码。

  00-1010背景:小规模数据基本有序时,插入排序效率更高。

  思路:将序列分成若干子序列进行插入排序,当序列基本有序时,对整个序列进行插入排序。

  代码:

  #python实现了Hill排序(一种插入排序)

  #先做宏观调整,再做微观调整。

  defshellSort(lst,k,reverse=False):

  长度=len(lst)

  Dk=k#设置一个增量Dk

  whiledk0:

  对于范围(dk,长度):

  temp=lst[i]

  j=i

  whilej=dkandlst[j-dk]temp:

  lst[j]

  j-=dk

  lst[j]=温度

  dk=int(dk/2)

  ifreverse==False:

  returnlst

  else:

  lst.reverse()

  Returnlst输出:

  test1=[19,21,4,6,25,3,99,67,12]

  测试2=[19,21,4,6,25,3,99,67,12]

  data1=shellSort(test1,7)

  data2=shellSort(test2,2,True)

  打印(从小到大:,数据1)

  Print(从大到小:,data2)希尔排序在最优时间内是复杂的,它会根据步长的顺序而变化。最坏的时间复杂度是O (n 2),在运算过程中是不稳定的。注意一下~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: