二分查找演算法是一種常用的查找演算法,也被稱為折半查找,它可以在有序的陣列或串列中快速查找需要的元素,
演算法描述:
- 首先確定陣列的中間位置mid=(left+right)/2;
- 然后將要查找的值key與中間位置的值進行比較;
- 如果key等于中間位置的值,則查找成功,回傳mid;
- 如果key小于中間位置的值,則在左半部分繼續查找;
- 如果key大于中間位置的值,則在右半部分繼續查找;
- 重復以上步驟,直到查找到key或者left>right時,查找結束,
C++代碼實作:
int binarySearch(int arr[], int n, int key)
{
int left = 0;
int right = n - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] == key)
return mid;
else if (arr[mid] > key)
right = mid - 1;
else if (arr[mid] < key)
left = mid + 1;
}
return -1; // 查找失敗,回傳-1
}
該函式接收三個引數,分別是:
- arr:有序陣列指標;
- n:陣列長度;
- key:要查找的值,
如果查找成功,函式將回傳該元素在陣列中的下標;否則,回傳-1表示查找失敗,
注意:使用二分查找演算法前,必須先對陣列進行排序,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/551436.html
標籤:其他
上一篇:springboot升級程序中踩坑定位分析記錄 | 京東云技術團隊
下一篇:返回列表
