Python实现二分查找
生活随笔
收集整理的這篇文章主要介紹了
Python实现二分查找
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
搜索常見算法:順序查找,二分法查找,哈希查找,下面是二分查找的實(shí)現(xiàn)方式
# coding:utf-8 # 二分查找的前提:只能對(duì)有序列進(jìn)行查找 def binary_search(alist,item):"""二分查找---遞歸實(shí)現(xiàn)"""n = len(alist)if n > 0:mid = n//2if item == alist[mid] :return Trueelif item < alist[mid]:return binary_search(alist[:mid],item)else:return binary_search(alist[mid+1:], item)else :return Falsedef binary_search_2(alist,item):"""二分查找---非遞歸版本"""n = len(alist)first = 0last = n-1while first <= last:mid = (first + last)//2if alist[mid] ==item:return True,midelif item < alist[mid]:last = mid - 1else:first = mid + 1return Falseif __name__ == "__main__":a = [1,5,6,10,11,13,18,37,99]print(a)sorted_list_11 = binary_search(a,1)print(sorted_list_11)sorted_list_12= binary_search(a, 88)print(sorted_list_12)sorted_list_21 = binary_search_2(a, 18)print(sorted_list_21)sorted_list_22 = binary_search_2(a, 88)print(sorted_list_22)# [1, 5, 6, 10, 11, 13, 18, 37, 99] # True # False # (True, 6) # False轉(zhuǎn)載于:https://blog.51cto.com/10777193/2395379
總結(jié)
以上是生活随笔為你收集整理的Python实现二分查找的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三个程序代码托管平台出现勒索事件? 建议
- 下一篇: (十五)java B2B2C 多级Spr