Python排序搜索基本算法之希爾排序?qū)嵗治?/h1>
更新時(shí)間:2017年12月09日 11:28:47 作者:littlethunder
這篇文章主要介紹了Python排序搜索基本算法之希爾排序,簡(jiǎn)單說(shuō)明了希爾排序的原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)希爾排序的具體操作技巧,需要的朋友可以參考下
本文實(shí)例講述了Python排序搜索基本算法之希爾排序。分享給大家供大家參考,具體如下:
希爾排序是插入排序的擴(kuò)展,通過(guò)允許非相鄰的元素進(jìn)行交換來(lái)提高執(zhí)行效率。希爾排序最關(guān)鍵的是選擇步長(zhǎng),本程序選用Knuth在1969年提出的步長(zhǎng)序列:1 4 13 40 121 364 1093 3280 。。。后一個(gè)元素是前一個(gè)元素*3+1,非常方便選取,而且效率還不錯(cuò)。代碼如下:
#-*- 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("腳本之家測(cè)試結(jié)果:")
seq=[8,6,4,9,7,3,2,-4,0,-100,99]
shellSort(seq)
print(seq)
運(yùn)行結(jié)果:

PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:
在線動(dòng)畫(huà)演示插入/選擇/冒泡/歸并/希爾/快速排序算法過(guò)程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
-
python 迭代器和iter()函數(shù)詳解及實(shí)例
這篇文章主要介紹了python 迭代器和iter()函數(shù)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下 2017-03-03
-
基于Django filter中用contains和icontains的區(qū)別(詳解)
下面小編就為大家分享一篇基于Django filter中用contains和icontains的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2017-12-12
-
python射線法判斷檢測(cè)點(diǎn)是否位于區(qū)域外接矩形內(nèi)
這篇文章主要為大家詳細(xì)介紹了python射線法判斷檢測(cè)點(diǎn)是否位于區(qū)域外接矩形內(nèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下 2019-06-06
-
python3.x實(shí)現(xiàn)base64加密和解密
這篇文章主要為大家詳細(xì)介紹了python3.x實(shí)現(xiàn)base64加密和解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下 2019-03-03
-
基于Python+Appium實(shí)現(xiàn)京東雙十一自動(dòng)領(lǐng)金幣功能
一年一度的雙十一即將來(lái)臨,各大平臺(tái)都在搞活動(dòng),京東天貓忙的不易樂(lè)乎,做任務(wù)領(lǐng)金幣的過(guò)程真的好無(wú)聊,今天小編給大家分享一篇教程通關(guān)Python+Appium實(shí)現(xiàn)京東雙十一自動(dòng)領(lǐng)金幣功能,需要的朋友可以參考下 2019-10-10
-
python圖片處理庫(kù)Pillow實(shí)現(xiàn)簡(jiǎn)單PS功能
Python 屆處理圖片最強(qiáng)的庫(kù)是 PIL(Python Image Library),但由于該庫(kù)只支持 2.x 版本,在此基礎(chǔ)上做了擴(kuò)展,出了一個(gè)兼容 3.x 的版本也就是 Pillow,因此,我們今天要用的庫(kù)就是Pillow 2021-11-11
最新評(píng)論
本文實(shí)例講述了Python排序搜索基本算法之希爾排序。分享給大家供大家參考,具體如下:
希爾排序是插入排序的擴(kuò)展,通過(guò)允許非相鄰的元素進(jìn)行交換來(lái)提高執(zhí)行效率。希爾排序最關(guān)鍵的是選擇步長(zhǎng),本程序選用Knuth在1969年提出的步長(zhǎng)序列:1 4 13 40 121 364 1093 3280 。。。后一個(gè)元素是前一個(gè)元素*3+1,非常方便選取,而且效率還不錯(cuò)。代碼如下:
#-*- 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("腳本之家測(cè)試結(jié)果:")
seq=[8,6,4,9,7,3,2,-4,0,-100,99]
shellSort(seq)
print(seq)
運(yùn)行結(jié)果:

PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:
在線動(dòng)畫(huà)演示插入/選擇/冒泡/歸并/希爾/快速排序算法過(guò)程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python 迭代器和iter()函數(shù)詳解及實(shí)例
這篇文章主要介紹了python 迭代器和iter()函數(shù)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03
基于Django filter中用contains和icontains的區(qū)別(詳解)
下面小編就為大家分享一篇基于Django filter中用contains和icontains的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
python射線法判斷檢測(cè)點(diǎn)是否位于區(qū)域外接矩形內(nèi)
這篇文章主要為大家詳細(xì)介紹了python射線法判斷檢測(cè)點(diǎn)是否位于區(qū)域外接矩形內(nèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
python3.x實(shí)現(xiàn)base64加密和解密
這篇文章主要為大家詳細(xì)介紹了python3.x實(shí)現(xiàn)base64加密和解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
基于Python+Appium實(shí)現(xiàn)京東雙十一自動(dòng)領(lǐng)金幣功能
一年一度的雙十一即將來(lái)臨,各大平臺(tái)都在搞活動(dòng),京東天貓忙的不易樂(lè)乎,做任務(wù)領(lǐng)金幣的過(guò)程真的好無(wú)聊,今天小編給大家分享一篇教程通關(guān)Python+Appium實(shí)現(xiàn)京東雙十一自動(dòng)領(lǐng)金幣功能,需要的朋友可以參考下2019-10-10
python圖片處理庫(kù)Pillow實(shí)現(xiàn)簡(jiǎn)單PS功能
Python 屆處理圖片最強(qiáng)的庫(kù)是 PIL(Python Image Library),但由于該庫(kù)只支持 2.x 版本,在此基礎(chǔ)上做了擴(kuò)展,出了一個(gè)兼容 3.x 的版本也就是 Pillow,因此,我們今天要用的庫(kù)就是Pillow2021-11-11

