二分查詢又稱折半查詢,在有序的陣列中找到特定的元素。
相比於在陣列中乙個乙個的去找,大大提高了查詢的效率。
首先先定義乙個有序的陣列,無序的不行。
int arr = ;//建立乙個有序的陣列
定義乙個要查詢的數
int k =7;
//要查詢的數
求出元素個數
int sz =
sizeof
(arr)
/sizeof arr[0]
;//算出元素個數
二分查詢的方法主要是通過下標去找,所以接下來我們來定義左右下標
int left =0;
//定義左下標
int right = sz -1;
//定義右下標,右下標等於元素個數減一,下標是從0開始的
所有的引數都定義好時,下面是演算法實現
while
(right >= left)
//如果右下標大於或等於左下標,代表這個陣列還沒有查詢完
else
if(mid < k)
//如果中間元素下標小於要找的元素,所以要找的元素在中間元素的右邊
else
//如果前兩種都不滿足,那只能是找到了}if
(left > right)
//如果左下標大於右下標,這個陣列已經找完了,未發現目標元素,就找不到
到這裡二分查詢就完成了。 二分查詢演算法c語言 演算法總結 二分查詢法
在leetcode的題目討論中,經常會有些大神將某一類的題目結題思路給整理了出來,感覺受益匪淺。受之啟發,萌生了自己也總結一下常見演算法的解題思路的想法,希望可以讓自己在這個總結的過程中可也融匯貫通這些思路,同時可以給後來者以啟發。從 開始好呢?就從經典的二分查詢法開始吧,這個演算法幾乎所有學過計算...
演算法入門 二分查詢演算法
演算法前提 必須採用順序儲存結構 必須按關鍵字大小有序排列 演算法思路是 1.每次去陣列中的中間值與被查詢的值進行比較 2.如果中間值小於被查詢的值,則選擇中間值右邊的陣列,重複1,直到發現與被查詢的值相等的陣列元素或返回某個值,表示被查詢的值在陣列中不存在。3.如果中間值大於被查詢的值,則選擇中間...
C語言 折半查詢(二分查詢)演算法
什麼是折半查詢 當我們在一堆有序陣列中間查詢乙個數的時候,先將中間的數與查詢數進行比較。如果中間數大於我們要查詢的數,則在中間左半邊進行查詢 同樣的,如果中間數小於我們要查詢的數,則在中間往右半邊再次進行查詢。重複以上的過程,直到滿足,如果不滿足,則查詢失敗。條件 元素必須按照大小有序排列。那我們實...