Python排序搜索基本算法之希爾排序實例分析
本文實例講述了Python排序搜索基本算法之希爾排序。分享給大家供大家參考,具體如下:
希爾排序是插入排序的擴展,通過允許非相鄰的元素進行交換來提高執(zhí)行效率。希爾排序最關鍵的是選擇步長,本程序選用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//=3 if __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程序設計有所幫助。
相關文章
Python接入MySQL實現增刪改查的實戰(zhàn)記錄
這篇文章主要給大家介紹了關于Python接入MySQL實現增刪改查的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03在python3.64中安裝pyinstaller庫的方法步驟
這篇文章主要介紹了在python3.64中安裝pyinstaller庫的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06