演算法二分法

2022-05-05 00:42:12 字數 964 閱讀 8569

"""

""""""

演算法之二分法:

1: 演算法 解決問題的高效方法

f = [1,3,4,5,6,7,8,9]

我想取出這個最大的數字9怎麼取出是不是可以通過for迴圈取出來

如:num = 9

for i in f: 注釋: 通過for迴圈吧f的值乙個乙個的給i

if num==i: 如果當i==9時 那麼print 列印findit 表示找到了

print("find it")

二:二分法 容器型別裡面的數字必須有大小順序

"""f = [1,3,4,5,6,7,8,9]

num = 10

defget_num(f,num):

ifnot

f:

print("

你說輸入的找不到")

return

print

(f) middle_index = len(f) // 2

#判斷num跟middle_index對應的數字的大小

if num >f[middle_index]:

#切取列表右半部分

num_right = f[middle_index + 1:]

#再遞迴呼叫get_num函式

get_num(num_right, num)

elif num #切取列表左半部分

num_left =f[0:middle_index]

#再遞迴呼叫get_num函式

get_num(num_left, num)

else

:

print('

find it

', num)

通過切分 吧 列表的值 從中間劈開 然後判斷 是否在裡面 看是在左邊還是在右邊 然後重複這樣的操作 即可 從而達到最後的目的

二分法 演算法

查詢演算法中的 二分法 是這樣定義的 給定n個從小到大排好序的整數序列list,以及某待查詢整數x,我們的目標是找到x在list中的下標。即若有list i x,則返回i 否則返回 1表示沒有找到。二分法是先找到序列的中點list m 與x進行比較,若相等則返回中點下標 否則,若list m x,則...

演算法 二分法

二分法可以歸為兩大類 二分查詢演算法 二分排序演算法 二分合併演算法 演算法中經常用到二分查詢演算法,比如最常規的應用就是在乙個有序陣列中找特定的數,但是如何寫出乙個完整準確的二分法呢,邊界條件如何判斷,到底是等於還是不等?可能會困惱大家,比如說查詢第乙個等於5的數,那又在如何查詢呢?查詢最後乙個等...

二分法 演算法

二分法查詢,這個演算法要求資料要是有序的。比如有這樣的問題 找出乙個陣列中,兩個數的和小於等於15,然後輸出他們,否則就單獨輸出較大的數。binarysearch.cpp include using namespace std void binarysearch int array,int leng...