python 二分查找和快速排序?qū)嵗斀?/h1>
更新時(shí)間:2017年10月13日 15:07:32 作者:Inc_Cool
本文通過(guò)實(shí)例代碼給大家詳細(xì)介紹了python 二分查找和快速排序,的相關(guān)知識(shí),需要的朋友可以參考下
思想簡(jiǎn)單,細(xì)節(jié)頗多;本以為很簡(jiǎn)單的兩個(gè)小程序,寫起來(lái)發(fā)現(xiàn)bug頻出,留此紀(jì)念。
#usr/bin/env python
def binary_search(lst,t):
low=0
height=len(lst)-1
quicksort(lst,0,height)
print lst
while low<=height:
mid = (low+height)/2
if lst[mid] == t:
return lst[mid]
elif lst[mid]>t:
height=mid-1
else:
low=mid+1
return -1
def quicksort( lst, left , right):
low=left
high=right
key=lst[left]
if left>=right:
return 0
while low<high:
while low<high and key<lst[high]:
high=high-1
lst[low]=lst[high]
while low<high and key>lst[low]:
print lst[low]
low=low+1
lst[high]=lst[low]
lst[low]=key
quicksort( lst , left ,low-1)
quicksort( lst , low+1 , right)
if __name__=='__main__':
print binary_search([4,8,1,5,10,2,12,3,6,9],4)
總結(jié)
以上所述是小編給大家介紹的python 二分查找和快速排序?qū)嵗斀猓M麑?duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
-
python mqtt 客戶端的實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了python mqtt 客戶端代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下 2019-09-09
-
對(duì)pandas里的loc并列條件索引的實(shí)例講解
今天小編就為大家分享一篇對(duì)pandas里的loc并列條件索引的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2018-11-11
-
Ubuntu16.04/樹(shù)莓派Python3+opencv配置教程(分享)
下面小編就為大家分享一篇Ubuntu16.04/樹(shù)莓派Python3+opencv配置教程。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2018-04-04
-
python末尾逗號(hào)導(dǎo)致返回結(jié)果是一個(gè)元組的問(wèn)題
在Python中,除非特別需要返回或傳參元組,一般不推薦在語(yǔ)句末尾添加逗號(hào),應(yīng)該注意檢查是否存在末尾逗號(hào)導(dǎo)致的這些副作用,這篇文章主要介紹了python末尾逗號(hào)導(dǎo)致返回結(jié)果是一個(gè)元組,需要的朋友可以參考下 2023-09-09
-
python基礎(chǔ)篇之pandas常用基本函數(shù)匯總
Pandas是一個(gè)python數(shù)據(jù)分析庫(kù),它提供了許多函數(shù)和方法來(lái)加快數(shù)據(jù)分析過(guò)程,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)篇之pandas常用基本函數(shù)的相關(guān)資料,需要的朋友可以參考下 2022-07-07
-
Python減少循環(huán)層次和縮進(jìn)的技巧分析
這篇文章主要介紹了Python減少循環(huán)層次和縮進(jìn)的技巧,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python優(yōu)化代碼跳出循環(huán)以減少循環(huán)層次的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下 2016-03-03
-
基于Python的Jenkins的二次開(kāi)發(fā)操作
這篇文章主要介紹了基于Python的Jenkins的二次開(kāi)發(fā)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2020-05-05
-
Django python雪花算法實(shí)現(xiàn)方式
在Django項(xiàng)目中添加自定義模塊或應(yīng)用來(lái)封裝雪花算法,步驟包括創(chuàng)建應(yīng)用,編寫算法實(shí)現(xiàn)代碼至utils.py文件,及配置settings.py,此方法可方便在項(xiàng)目中隨處調(diào)用雪花算法,適用于需要唯一ID生成的場(chǎng)景 2024-09-09
-
Python實(shí)現(xiàn)利用最大公約數(shù)求三個(gè)正整數(shù)的最小公倍數(shù)示例
這篇文章主要介紹了Python實(shí)現(xiàn)利用最大公約數(shù)求三個(gè)正整數(shù)的最小公倍數(shù),涉及Python數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下 2017-09-09
最新評(píng)論
思想簡(jiǎn)單,細(xì)節(jié)頗多;本以為很簡(jiǎn)單的兩個(gè)小程序,寫起來(lái)發(fā)現(xiàn)bug頻出,留此紀(jì)念。
#usr/bin/env python def binary_search(lst,t): low=0 height=len(lst)-1 quicksort(lst,0,height) print lst while low<=height: mid = (low+height)/2 if lst[mid] == t: return lst[mid] elif lst[mid]>t: height=mid-1 else: low=mid+1 return -1 def quicksort( lst, left , right): low=left high=right key=lst[left] if left>=right: return 0 while low<high: while low<high and key<lst[high]: high=high-1 lst[low]=lst[high] while low<high and key>lst[low]: print lst[low] low=low+1 lst[high]=lst[low] lst[low]=key quicksort( lst , left ,low-1) quicksort( lst , low+1 , right) if __name__=='__main__': print binary_search([4,8,1,5,10,2,12,3,6,9],4)
總結(jié)
以上所述是小編給大家介紹的python 二分查找和快速排序?qū)嵗斀猓M麑?duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
python mqtt 客戶端的實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了python mqtt 客戶端代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09對(duì)pandas里的loc并列條件索引的實(shí)例講解
今天小編就為大家分享一篇對(duì)pandas里的loc并列條件索引的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Ubuntu16.04/樹(shù)莓派Python3+opencv配置教程(分享)
下面小編就為大家分享一篇Ubuntu16.04/樹(shù)莓派Python3+opencv配置教程。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04python末尾逗號(hào)導(dǎo)致返回結(jié)果是一個(gè)元組的問(wèn)題
在Python中,除非特別需要返回或傳參元組,一般不推薦在語(yǔ)句末尾添加逗號(hào),應(yīng)該注意檢查是否存在末尾逗號(hào)導(dǎo)致的這些副作用,這篇文章主要介紹了python末尾逗號(hào)導(dǎo)致返回結(jié)果是一個(gè)元組,需要的朋友可以參考下2023-09-09python基礎(chǔ)篇之pandas常用基本函數(shù)匯總
Pandas是一個(gè)python數(shù)據(jù)分析庫(kù),它提供了許多函數(shù)和方法來(lái)加快數(shù)據(jù)分析過(guò)程,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)篇之pandas常用基本函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-07-07Python減少循環(huán)層次和縮進(jìn)的技巧分析
這篇文章主要介紹了Python減少循環(huán)層次和縮進(jìn)的技巧,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python優(yōu)化代碼跳出循環(huán)以減少循環(huán)層次的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-03-03基于Python的Jenkins的二次開(kāi)發(fā)操作
這篇文章主要介紹了基于Python的Jenkins的二次開(kāi)發(fā)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Django python雪花算法實(shí)現(xiàn)方式
在Django項(xiàng)目中添加自定義模塊或應(yīng)用來(lái)封裝雪花算法,步驟包括創(chuàng)建應(yīng)用,編寫算法實(shí)現(xiàn)代碼至utils.py文件,及配置settings.py,此方法可方便在項(xiàng)目中隨處調(diào)用雪花算法,適用于需要唯一ID生成的場(chǎng)景2024-09-09Python實(shí)現(xiàn)利用最大公約數(shù)求三個(gè)正整數(shù)的最小公倍數(shù)示例
這篇文章主要介紹了Python實(shí)現(xiàn)利用最大公約數(shù)求三個(gè)正整數(shù)的最小公倍數(shù),涉及Python數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-09-09