二分法查詢

2021-07-22 09:58:54 字數 1028 閱讀 9444

//二分查詢的基本思想是將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 除了對特別小的陣列外,二分法查詢表現是非常優秀的.每次對範圍加倍可以建...