python 初識二分法(一)

2022-09-10 10:06:14 字數 1717 閱讀 2182

目錄

二分法基礎運用,例項1如下:

import random

# 獲取100以內的隨機數

start_num =0

end_num = 100

while true:

real_num = random.randint(0,100)

num = int(input('please input your guess num>>>>:'))

if num>real_num:

end_num = num

print(f'to big,範圍是~')

elif num < real_num:

start_num = num

print(f'to small,範圍是~')

else:

print('guess right!')

break

'''這個猜數字遊戲,很好的運用了二分法的思想,

如果猜大了,那麼就把輸入的值當做範圍的上限,

如果猜小了,那麼就把輸入值當做範圍的下限'''

例項2如下:

# 用二分法在列表搜尋值321,二分法查詢必須有序

l = [11, 23, 43, 57, 68, 76, 81, 99, 111, 123,

321, 432, 567, 666, 712, 899, 999, 1111]

# 排序

l.sort()

def binary_target(target_num, l):

if len(l) == 0:

print('沒找到')

return

# 先獲取中間位置索引值

middle_index = len(l) // 2

# 判斷中間索引對應的值比目標值大還是小

if target_num > l[middle_index]:

# 說明要找的元素只可能出現在列表的右側

l_right = l[middle_index + 1:]

print(l_right)

binary_target(target_num, l_right)

elif target_num < l[middle_index]:

# 說明要找的元素只可能出現在列表的左側

l_left = l[:middle_index]

print(l_left)

binary_target(target_num, l_left)

else:

print('找到了', target_num)

binary_target(321,l)

查詢過程圖示:

學完的狀態!

學完頭腦分離···

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

Python 二分法查詢

二分法演算法原理 陣列是有序陣列,確定該期間的中間位置center 將查詢的值key與array center 比較。若相等,查詢成功返回此位置 否則確定新的查詢區域,繼續二分查詢。新區域的確定 如果key arrey center 則起始位置變為center 1,結束位置不變 如果key 每一次查...