//二分查詢的基本思想是將n個元素分成大致相等的兩部分,取a[n / 2]與x做比較,如果x = a[n / 2], 則找到x,
//時間複雜度為o()=o(logn)
//二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;
//其缺點是要求待查表為有序表,且插入刪除困難。
//舉例子 查詢23
//下標0 1 2 3 4 5 6
//陣列11 17 23 34 46 49 62
//第一次 low =0 high =6, mid = 0+6/2=3,a[3]=34,改變high = mid-1 =2;
//第二次 low =0 hign =2, mid = 0+2/2=1,a[1]=17,改變low = mid+1=2;
//第三次 low =2 high =2, mid =2,a[2]剛好為23,返回下標2,則總共尋找了三次。
#includeusing namespace std;
//方法一 非遞迴
//二分法查詢,x是要被查詢的元素,n是陣列中元素個數
//函式返回的是查詢元素的下標
int ccount = 0;//標記查詢次數
int binarysearch(int list, const int n ,const int x)
return -1;//沒找到
}int main()
; int index = binarysearch(a, 7, 23);
cout << ccount<<" "<< index <<" "<< a[index] << endl;
system("pause");
return 0;
}//方法二 遞迴
//int binsearch(int list, int low, int high, int x)
//// else
// return -1;
//}
C 二分法查詢,遞迴二分法
用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...
python二分法查詢 Python 二分法查詢
二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...
二分法查詢
前幾天csdn上說只有10 程式設計師能寫出正確的二分法查詢 so.我在看過二分法查詢方法後寫了乙個 一次測試成功.範圍 需要次數 10 4 100 7 1000 10 10000 14 100000 17 1000000 20 除了對特別小的陣列外,二分法查詢表現是非常優秀的.每次對範圍加倍可以建...