C 二分法的解讀

2021-10-13 07:27:16 字數 1059 閱讀 1977

注:一定是有序的陣列,才可以使用這種演算法,如果陣列沒有排序則先進行排序後再呼叫此方法。

1、二分法是做什麼的呢?

當然是查詢陣列中的資料了,開個玩笑,哈哈哈。

2、為啥要用這種方式呢?

二分顧名思義,就是將一組資料對半分開(比如左右兩部分,下面用左右陣列表示),從中間位置開始查詢,

如果中間這個值正是咱們要找的值則直接返回這個值(或者索引),如果沒有找到,那麼去判斷中間的這個值和咱們要找的值哪個大,

如果中間值比咱們要找的值大,則將之前分開的陣列的左面的陣列再進行對半分開,遞迴直到找到咱們要的那個值才會結束,反之亦然,

但是如果就是沒有咱們找的值那麼豈不是死迴圈了嘛,

所以要加判斷,如果遞迴到開始索引大於結束索引,也就是查到最後了還是沒有找到匹配的值,則退出。

這種搜尋演算法每一次比較都使搜尋範圍縮小一半,這樣對於大資料量的陣列,極大的提公升了查詢效率。

protected

void

button1_click1

(object sender,

eventargs e)

;//測試 要找的數字是15

int key =15;

//查詢數並返回 若有,返回該數,沒有則返回-1

int rr =

binarysearch

(arry,

0, arry.length -

1, key)

; response.

write

(rr);}

///

/// 二分法查詢指定值

///

/// 目標陣列

/// 開始索引

/// 結束索引

/// 要查詢的關鍵字

///

public

static

intbinarysearch

(int

arr,

int start,

int end,

int key)

else

}}

二分法終極解讀

目錄 二分法是啥 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二分法查詢 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 ...