日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python包含某个数字_python编程练习---有序数组中,快速查找是否包含指定数字,并返回其下标...

發布時間:2025/3/15 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python包含某个数字_python编程练习---有序数组中,快速查找是否包含指定数字,并返回其下标... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

生活小問題,1-100猜數游戲:游戲管理員默認寫下一個數字,讓用戶來猜,管理員會根據用戶猜的數字,來回答大了、小了提示,如何快速找到該數,假定指定數為70

第一次:猜50(折半),管理員:小了,那范圍變成51-100

第二次:猜75(折半),管理員:大了,那范圍變成51-74

第三次:猜62(折半),管理員:小了,那范圍變成63-74

第四次:猜68(折半),管理員:小了,那范圍變成69-74

第五次:猜71(折半),管理員:大了,那范圍變成69-70

第六次:猜69,管理員小了---》為70

假如不通過折半的形式來猜,每次隨機猜,最多需要100次,才能猜到對應的數,也就是需要做到全部遍歷,時間復雜度為O(n)

如果通過折半的形式來猜,可以很快猜到指定數字。

所以對于一個有序數列,最快的查找方式,就是二分查找(折半查找),時間復雜度為O(logn)

以下以一個從小到大排序的數組舉例,目標值為target,找出nums是否包含target

def findTarget(target, nums):

smaller, biger = 0, len(nums)-1 #初始化最小、最大下標

while smaller <= biger: #循環條件

mid = int((smaller+biger)/2) #二分坐標

if target > nums[mid]: #目標值大于二分位置的數

smaller = mid + 1 #最小的坐標賦值為二分位置坐標+1

elif target < nums[mid]: #目標值小于于二分位置的數

biger = mid -1 #最大的坐標賦值為二分位置坐標-1

else:

return mid

return None

總結

以上是生活随笔為你收集整理的python包含某个数字_python编程练习---有序数组中,快速查找是否包含指定数字,并返回其下标...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。