【发布时间】:2022-01-09 14:56:06
【问题描述】:
我一直在尝试学习算法,作为其中的一部分,我一直在尝试编写二进制搜索代码,逻辑似乎很好。代码不会终止,IDE 永远保持空闲状态。我不明白我做错了什么。任何帮助表示赞赏。提前致谢!
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int no = 5;
System.out.print(binSearch(arr, no, 0, arr.length - 1));
}
private static boolean binSearch(int[] arr, int no, int start, int end) {
while(start <= end) {
int mid = (start + end) / 2;
if (arr[mid] == no) {
return true;
} else if (no > arr[mid]) {
binSearch(arr, no, mid + 1, end);
} else if(no < arr[mid]) {
binSearch(arr, no, start, mid - 1);
}
}
return false;
}
}
【问题讨论】: