Python 二分查找
生活随笔
收集整理的這篇文章主要介紹了
Python 二分查找
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(非遞歸實現)
def binary_search(alist, item):first = 0last = len(alist)-1while first<=last:midpoint = (first + last)/2if alist[midpoint] == item:return Trueelif item < alist[midpoint]:last = midpoint-1else:first = midpoint+1return False testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,] print(binary_search(testlist, 3)) print(binary_search(testlist, 13))(遞歸實現)
def binary_search(alist, item):if len(alist) == 0:return Falseelse:midpoint = len(alist)//2if alist[midpoint]==item:return Trueelse:if item<alist[midpoint]:return binary_search(alist[:midpoint],item)else:return binary_search(alist[midpoint+1:],item)testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,] print(binary_search(testlist, 3)) print(binary_search(testlist, 13))- 最優時間復雜度:O(1)
- 最壞時間復雜度:O(logn)
二分查找又稱折半查找,優點是比較次數少,查找速度快,平均性能好;其缺點是要求待查表為有序表,且插入刪除困難。
轉載于:https://www.cnblogs.com/Erick-L/p/7226934.html
總結
以上是生活随笔為你收集整理的Python 二分查找的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为OJ 名字美丽度
- 下一篇: ES6--函数的扩展