每天5分钟玩转python3算法:二分查找法
生活随笔
收集整理的這篇文章主要介紹了
每天5分钟玩转python3算法:二分查找法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
從今天開始,博主準(zhǔn)備開始一段常見算法的學(xué)習(xí),算法實現(xiàn)使用Python3,希望堅持下去^_^
alg1:二分查找法
1、運行時間
二分查找相比于依次查找,查詢速度提升明顯:
+ 依次查找:O(n)
+ 二分查找:O(logn)
n表示候選數(shù)的數(shù)目;O(logn)實際代表找到目標(biāo)數(shù)需要的查詢次數(shù);實際上查詢次數(shù)可以大概代表運行時間
2、適用場景
排好順序的列表(python)
3、代碼實現(xiàn)
from random import randintdef search(list1,target):low = 0high = len(list1) - 1while low < high:mid = int((high + low) / 2)guess = list1[mid]if guess < target: #+1非常關(guān)鍵,是最終退出循環(huán)的決定因素low = mid + 1elif guess > target:high = mid -1else:return midreturn None #生成隨機順序列表 mylist = [i for i in range(1,100) if randint(0,1)] print(mylist) print(search(mylist,10)) print(search(mylist,11))4、幾個基礎(chǔ)概念
總結(jié)
以上是生活随笔為你收集整理的每天5分钟玩转python3算法:二分查找法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3练习题:并发编程(21-2
- 下一篇: python3装饰器的高级使用