日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

用C++实现二分查找

發布時間:2023/12/18 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用C++实现二分查找 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用C++實現二分查找

  對于有序表而言,通常使用二分查找來尋找待查記錄。二分查找,又名折半查找,具體查找過程為:先確定待查找記錄的范圍,然后逐步縮小范圍知道找到或者找不到該記錄為至。其C++實現代碼如下所示:

1 #include <iostream> 2 using namespace std; 3 4 /*二分查找: 5 array:待查找的數組 6 low:數組的第一個待查找的位置,通常為0 7 high:數組的長度-1 8 searchTarget:待查找的記錄*/ 9 int BinSearch (int array[], int low, int high, int searchTarget) 10 { 11 while (low <= high) 12 { 13 int mid = (low + high) / 2; 14 if (searchTarget < array[mid])//待查找的記錄在前半段 15 { 16 high = mid - 1; 17 } 18 else if (searchTarget > array[mid])//待查找的記錄在后半段 19 { 20 low = mid + 1; 21 } 22 else 23 { 24 return mid;//找到 25 } 26 } 27 return -1;//未找到 28 } 29 30 int main () 31 { 32 int a1[6] = {1, 3 ,5, 8, 11, 28}; 33 int targetLoc = BinSearch (a1, 0, 7, 5); 34 cout << "元素5在a1中的位置為(編號從0開始, -1表示未找到): " << targetLoc << endl; 35 int a2[5] = {2, 3, 6, 7, 10}; 36 targetLoc = BinSearch (a2, 0, 5, 5); 37 cout << "元素5在a2中的位置為(編號從0開始,-1表示未找到): " << targetLoc << endl; 38 return 0; 39
可以看到我們找到了記錄5在數組a1中的位置,不能找到其在a2中的位置,以下是程序的運行結果:
元素5在a1中的位置為(編號從0開始, -1表示未找到): 2 元素5在a2中的位置為(編號從0開始,-1表示未找到): -1

?

轉載于:https://www.cnblogs.com/uestcjoel/p/6492366.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的用C++实现二分查找的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。