Python排序搜索基本算法之希爾排序?qū)嵗治?/h1>
更新時間:2017年12月09日 11:28:47 作者:littlethunder
這篇文章主要介紹了Python排序搜索基本算法之希爾排序,簡單說明了希爾排序的原理并結(jié)合實例形式分析了Python實現(xiàn)希爾排序的具體操作技巧,需要的朋友可以參考下
本文實例講述了Python排序搜索基本算法之希爾排序。分享給大家供大家參考,具體如下:
希爾排序是插入排序的擴展,通過允許非相鄰的元素進行交換來提高執(zhí)行效率。希爾排序最關(guān)鍵的是選擇步長,本程序選用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("腳本之家測試結(jié)果:")
seq=[8,6,4,9,7,3,2,-4,0,-100,99]
shellSort(seq)
print(seq)
運行結(jié)果:

PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:
在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
-
基于PyTorch實現(xiàn)EdgeCNN的實戰(zhàn)教程
本文我們將使用PyTorch來簡易實現(xiàn)一個EdgeCNN,不使用PyG庫,讓新手可以理解如何PyTorch來搭建一個簡易的圖網(wǎng)絡(luò)實例demo,感興趣的朋友跟隨小編一起看看吧 2023-02-02
-
Python接入MySQL實現(xiàn)增刪改查的實戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于Python接入MySQL實現(xiàn)增刪改查的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2021-03-03
-
Python獲取excel內(nèi)容及相關(guān)操作代碼實例
這篇文章主要介紹了Python獲取excel內(nèi)容及相關(guān)操作代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下 2020-08-08
-
Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法示例
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法,結(jié)合實例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計中多繼承、多態(tài)的概念、原理、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下 2019-04-04
-
在python3.64中安裝pyinstaller庫的方法步驟
這篇文章主要介紹了在python3.64中安裝pyinstaller庫的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2020-06-06
-
python游戲庫pygame經(jīng)典教程(推薦!)
Python Pygame是一款專門為開發(fā)和設(shè)計 2D 電子游戲而生的軟件包,是入門級游戲開發(fā)庫,下面這篇文章主要給大家介紹了python游戲庫pygame經(jīng)典教程的相關(guān)資料,需要的朋友可以參考下 2022-12-12
-
12個Pandas/NumPy中的加速函數(shù)使用總結(jié)
在本文中,數(shù)據(jù)和分析工程師?Kunal?Dhariwal?為我們介紹了?12?種?Numpy?和?Pandas?函數(shù),這些高效的函數(shù)會令數(shù)據(jù)分析更為容易、便捷 2022-09-09
最新評論
本文實例講述了Python排序搜索基本算法之希爾排序。分享給大家供大家參考,具體如下:
希爾排序是插入排序的擴展,通過允許非相鄰的元素進行交換來提高執(zhí)行效率。希爾排序最關(guān)鍵的是選擇步長,本程序選用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("腳本之家測試結(jié)果:") seq=[8,6,4,9,7,3,2,-4,0,-100,99] shellSort(seq) print(seq)
運行結(jié)果:
PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:
在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
基于PyTorch實現(xiàn)EdgeCNN的實戰(zhàn)教程
本文我們將使用PyTorch來簡易實現(xiàn)一個EdgeCNN,不使用PyG庫,讓新手可以理解如何PyTorch來搭建一個簡易的圖網(wǎng)絡(luò)實例demo,感興趣的朋友跟隨小編一起看看吧2023-02-02Python接入MySQL實現(xiàn)增刪改查的實戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于Python接入MySQL實現(xiàn)增刪改查的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python獲取excel內(nèi)容及相關(guān)操作代碼實例
這篇文章主要介紹了Python獲取excel內(nèi)容及相關(guān)操作代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法示例
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法,結(jié)合實例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計中多繼承、多態(tài)的概念、原理、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下2019-04-04在python3.64中安裝pyinstaller庫的方法步驟
這篇文章主要介紹了在python3.64中安裝pyinstaller庫的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06python游戲庫pygame經(jīng)典教程(推薦!)
Python Pygame是一款專門為開發(fā)和設(shè)計 2D 電子游戲而生的軟件包,是入門級游戲開發(fā)庫,下面這篇文章主要給大家介紹了python游戲庫pygame經(jīng)典教程的相關(guān)資料,需要的朋友可以參考下2022-12-1212個Pandas/NumPy中的加速函數(shù)使用總結(jié)
在本文中,數(shù)據(jù)和分析工程師?Kunal?Dhariwal?為我們介紹了?12?種?Numpy?和?Pandas?函數(shù),這些高效的函數(shù)會令數(shù)據(jù)分析更為容易、便捷2022-09-09