template<typename T>
int binarySearch(T arr[], int n, T target) {
int l = 0, r = n - 1; // 在arr[l...r]之中查找target
while (l <= r) {
//int mid = (l + r) / 2; // 有bug,可能會產(chǎn)生溢出
int mid = l + (r - l) / 2; // 無bug
if (arr[mid] == target)
return mid;
if (target < arr[mid]) // 在arr[l...mid-1]之中查找target
r = mid - 1;
else // target > arr[mid]
l = mid + 1; // 在arr[mid+1...r]之中查找target
}
return -1;
}
二分查找法
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 起因 先說說事情的起因,最近在分析數(shù)據(jù)時經(jīng)常遇到一種場景,代碼需要頻繁的讀某一張數(shù)據(jù)庫的表,比如根據(jù)地區(qū)ID獲取地...