二進位制搜尋(查詢)


二進位制搜尋(二進位制查詢)是一個非常快的搜尋演算法。這種搜尋演算法適用於分裂和治之的原則。對於該演算法正確工作資料收集應是有序的形式。

二進位制搜尋通過比較集合的中部專案來搜尋的特定專案。如果出現匹配,那麼返回專案的索引。如果中間項大於專案,然後專案是在搜尋子陣列中間專案的右側的專案,否則其它會在位於子陣列中間項左側搜尋。 這個過程一直持續在子陣列中操作直到子陣列的大小減少到零。

二進位制搜尋減半搜尋的專案,從而降低比較數量必須作出非常少的數量。

演算法

Binary Search ( A: array of item, n: total no. of items ,x: item to be searched)
Step 1: Set lowerBound = 1
Step 2: Set upperBound = n 
Step 3: if upperBound < lowerBound go to step 12
Step 4: set midYiibai = ( lowerBound + upperBound ) / 2
Step 5: if A[midYiibai] < x
Step 6: set lowerBound = midYiibai + 1
Step 7: if A[midYiibai] > x
Step 8: set upperBound = midYiibai - 1 
Step 9  if A[midYiibai] = x go to step 11
Step 10: Go to Step 3
Step 11: Print Element x Found at index midYiibai and go to step 13
Step 12: Print element not found
Step 13: Exit

要檢視二進位制搜尋使用陣列實現在C語言程式設計,請點選這裡