查詢之二分查詢

2021-09-23 14:13:17 字數 752 閱讀 4356

二分查詢前提查詢的序列需要有序

十分好理解 取中間值與目標值對比查詢 注意下數值邊界

public static void main(string args)

; int arr2 = ;

int arr3 = {};

int index = binarysearch(arr, 34);

int index2 = binarysearch(arr2, 34);

int index3 = binarysearch(arr3, 34);

system.out.printf("value in arr index " + index + "\r\n");

system.out.printf("value in arr2 index " + index2 + "\r\n");

system.out.printf("value in arr3 index " + index3 + "\r\n");

} private static int binarysearch(int arr, int value)

//迭代二分查詢

private static int binarysearch(int arr, int value, int h, int t)

輸出結果

查詢演算法之 二分查詢

這個例項給出了二叉搜尋演算法在9個元素的陣列arr中查詢某個目標值的過程01 2345 678 7 35812 1623 3355 例子1 查詢目標值2301 2345 678 7 35812 1623 3355 步驟1 索引範圍 0,9 索引first 0,last 9,mid 0 9 2 4 t...

查詢演算法之二分查詢

二分查詢,也是經常會問道的,以下寫法主要是針對已經排好序,且不會受到重複元素影響的陣列使用。二分查詢 param string find 要查詢的值 param array array 要查詢的陣列 return bool string function binarysearch find arra...

查詢演算法之二分查詢

在乙個排好序的陣列t 1 n 中查詢x,如果x在t中,輸出x在t的下標j 如果x不在t中,輸出j 0。對於這樣的有序序列,可以使用二分查詢的演算法來實現。如下圖序列,二分查詢20。在有序表中,取中間資料作為比較物件,若給定值與中間記錄的數值相等,則查詢成功 若給定值小於中間值的數值,則在中間值的左半...