本文實例講述了Python排序搜索基本算法之希爾排序。分享給大家供大家參考,具體如下:
希爾排序是插入排序的擴展,通過允許非相鄰的元素進行交換來提高執行效率。希爾排序最關鍵的是選擇步長,本程序選用Knuth在1969年提出的步長序列:1 4 13 40 121 364 1093 3280 。。。后一個元素是前一個元素*3+1,非常方便選取,而且效率還不錯。代碼如下:
#-*- coding: UTF-8 -*-def shellSort(seq):  length=len(seq)  inc=0  while inc<=length/3:    inc=inc*3+1  print(inc)  while inc>=1:    for i in range(inc,length):      tmp=seq[i]      for j in range(i,0,-inc):        if tmp<seq[j-inc]:          seq[j]=seq[j-inc]        else:          j+=inc          break      seq[j-inc]=tmp    inc//=3if __name__=='__main__':  print("武林站長站測試結果:")  seq=[8,6,4,9,7,3,2,-4,0,-100,99]  shellSort(seq)  print(seq)運行結果:

PS:這里再為大家推薦一款關于排序的演示工具供大家參考:
在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答