二分法查詢

2022-06-06 01:36:10 字數 803 閱讀 5899

log2為底數的演算法是:

log2(n)

相當於2的多少次方(立方)等於n

例:log2(8)=3

相當於,2的3次方等於8

從排序好的陣列,找到你需要找到的值(t=1),演算法複雜度:o(log2(n))

步驟:首先確認查詢的陣列索引範圍,

1:假設資料int arr = ;

2:則搜尋範圍為 [0,9];即int start =0;int end = 9;

3:取陣列索引中間的值跟t比較,int middle = (start + end)/2=4;

4:如果arr[middle]>t;則搜尋範圍控制在了(0,middle-1],即 end = middle-1;

相反,arr[middle]arr[mid])

if (t == arr[mid])

}return null;

}遞迴寫法

public static int search(int num,int low,int high,int a) else if(a[middle]arr[mid])else

} return -1; //low>high的情況,這種情況下key的值大於arr中最大的元素值或者key的值小於arr中最小的元素值

}遞迴寫法

function binarysearch(arr,low,high,key)

var mid=math.floor((low+high)/2);

if(key==arr[mid])else if(key}

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