python 二分查找和快速排序?qū)嵗斀?/h1>
更新時間:2017年10月13日 15:07:32 作者:Inc_Cool
本文通過實例代碼給大家詳細(xì)介紹了python 二分查找和快速排序,的相關(guān)知識,需要的朋友可以參考下
思想簡單,細(xì)節(jié)頗多;本以為很簡單的兩個小程序,寫起來發(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ū)嵗斀?,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
-
Ubuntu16.04/樹莓派Python3+opencv配置教程(分享)
下面小編就為大家分享一篇Ubuntu16.04/樹莓派Python3+opencv配置教程。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 2018-04-04
-
python末尾逗號導(dǎo)致返回結(jié)果是一個元組的問題
在Python中,除非特別需要返回或傳參元組,一般不推薦在語句末尾添加逗號,應(yīng)該注意檢查是否存在末尾逗號導(dǎo)致的這些副作用,這篇文章主要介紹了python末尾逗號導(dǎo)致返回結(jié)果是一個元組,需要的朋友可以參考下 2023-09-09
-
python基礎(chǔ)篇之pandas常用基本函數(shù)匯總
Pandas是一個python數(shù)據(jù)分析庫,它提供了許多函數(shù)和方法來加快數(shù)據(jù)分析過程,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)篇之pandas常用基本函數(shù)的相關(guān)資料,需要的朋友可以參考下 2022-07-07
-
Python減少循環(huán)層次和縮進(jìn)的技巧分析
這篇文章主要介紹了Python減少循環(huán)層次和縮進(jìn)的技巧,結(jié)合實例形式較為詳細(xì)的分析了Python優(yōu)化代碼跳出循環(huán)以減少循環(huán)層次的技巧,具有一定參考借鑒價值,需要的朋友可以參考下 2016-03-03
-
Python實現(xiàn)利用最大公約數(shù)求三個正整數(shù)的最小公倍數(shù)示例
這篇文章主要介紹了Python實現(xiàn)利用最大公約數(shù)求三個正整數(shù)的最小公倍數(shù),涉及Python數(shù)學(xué)運算相關(guān)操作技巧,需要的朋友可以參考下 2017-09-09
最新評論
思想簡單,細(xì)節(jié)頗多;本以為很簡單的兩個小程序,寫起來發(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ū)嵗斀?,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Ubuntu16.04/樹莓派Python3+opencv配置教程(分享)
下面小編就為大家分享一篇Ubuntu16.04/樹莓派Python3+opencv配置教程。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python末尾逗號導(dǎo)致返回結(jié)果是一個元組的問題
在Python中,除非特別需要返回或傳參元組,一般不推薦在語句末尾添加逗號,應(yīng)該注意檢查是否存在末尾逗號導(dǎo)致的這些副作用,這篇文章主要介紹了python末尾逗號導(dǎo)致返回結(jié)果是一個元組,需要的朋友可以參考下2023-09-09
python基礎(chǔ)篇之pandas常用基本函數(shù)匯總
Pandas是一個python數(shù)據(jù)分析庫,它提供了許多函數(shù)和方法來加快數(shù)據(jù)分析過程,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)篇之pandas常用基本函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python減少循環(huán)層次和縮進(jìn)的技巧分析
這篇文章主要介紹了Python減少循環(huán)層次和縮進(jìn)的技巧,結(jié)合實例形式較為詳細(xì)的分析了Python優(yōu)化代碼跳出循環(huán)以減少循環(huán)層次的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-03-03
Python實現(xiàn)利用最大公約數(shù)求三個正整數(shù)的最小公倍數(shù)示例
這篇文章主要介紹了Python實現(xiàn)利用最大公約數(shù)求三個正整數(shù)的最小公倍數(shù),涉及Python數(shù)學(xué)運算相關(guān)操作技巧,需要的朋友可以參考下2017-09-09

