二分查詢演算法 c語言入門

2021-10-16 17:01:09 字數 803 閱讀 8330

二分查詢又稱折半查詢,在有序的陣列中找到特定的元素。

相比於在陣列中乙個乙個的去找,大大提高了查詢的效率。

首先先定義乙個有序的陣列,無序的不行。

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語言 折半查詢(二分查詢)演算法

什麼是折半查詢 當我們在一堆有序陣列中間查詢乙個數的時候,先將中間的數與查詢數進行比較。如果中間數大於我們要查詢的數,則在中間左半邊進行查詢 同樣的,如果中間數小於我們要查詢的數,則在中間往右半邊再次進行查詢。重複以上的過程,直到滿足,如果不滿足,則查詢失敗。條件 元素必須按照大小有序排列。那我們實...