二分查詢需要注意的Bug

2021-06-22 00:50:56 字數 579 閱讀 8524

不應該使用middle=(left+right)/2這種情況,否則對於大資料來說會產生溢位問題。切記!值不同的時候,left相對middle應該+1,不要直接用middle進行賦值。

#include

#include

using namespace  std;

//下面乙個移位是一樣的,>>相當於除去2,主要是要用right-left,否則對於大資料來說會產生溢位問題。切記

int binarysearch(int arr,int len,int number)

else}}

int main()

//        else if(array[middle]//          

//        else  

//            return middle;    

//        //可能會有讀者認為剛開始時就要判斷相等,但畢竟陣列中不相等的情況更多  

//        //如果每次迴圈都判斷一下是否相等,將耗費時間  

//    }  

//    return -1;  

//} 

二分查詢需要注意的幾點及優化

我們都已經很清楚普通的二分查詢演算法的寫法 1.處理無效輸入的時候 bool isinvalidinput false 可以用作訊號量處理 int binaryserach int array,int n,int key isinvalidinput false 區分 1表示的意思是無效輸入還是沒找...

把二分查詢演算法寫正確需要注意的地方

今天再次解決乙個需要使用二分查詢的問題,再一次的,我又沒有一次過寫對.為什麼我說 又 抓狂了,似乎開始有一些 二分查詢恐懼症 為了以後能夠一次將這個基本的演算法寫對,我決定再仔細研究一下.我之前有寫過乙個二分查詢的演算法,在 這裡,這一次再以這個問題為例來說明.我今早寫下的錯誤 類似於下面的樣子 i...

沒有bug二分查詢

在電腦科學中,二分查詢 英語 binary search 也稱折半搜尋 英語 half interval search 對數搜尋 英語 logarithmic search 是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜尋過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜尋過程結束 ...