這是一個好的執行二進制搜索算法?它的工作原理,但是我想到了一個實現,與我的教師不同。任何人都可以爲我打洞嗎?Java:二進制搜索
package algorithm.linearsearch;
公共類二分查找{
public static void main(String[] args) {
System.out.println(binarySearch(
new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 26, 109, 1001, 1100 },
26));
}
private static int binarySearch(int[] array, int target) {
int p = 0;
int r = array.length - 1;
int q;
while (p <= r) {
q = (p + r)/2;
if (array[q] == target) {
System.out.println("value: " + array[q]);
return q;
}
if (array[q] > target) {
r = q + 1;
} else {
p = q - 1;
}
}
return -1;
}
}
你的教師執行什麼? – Ravi
您也可以嘗試使用遞歸算法進行binarySearch。 – nagendra547
這聽起來像你要求* [代碼審查](https://codereview.stackexchange.com/)*。 – ray