我正在为学校解决这个问题
“编写一个二进制搜索程序,该程序在提供的数据集中寻找以下3个值74、35、62(是,我知道...)。您的应用程序应在每次通过后打印出剩余数据。数据集:23 27 29 31 35 39 40 41 52 66 71 74 75 90 99“
[目前,我编码到查找值的位置。我只是不知道如何在每次通过后打印出剩余的数据。请帮助。
这是我的代码:
import java.util.Scanner;
class BinarySearchTracing{
public static void main(String args[]){
Scanner scan = new Scanner (System.in);
int[] d = {23, 27, 29, 31, 35, 39, 40, 41, 52, 66, 71, 74, 75, 90, 99};
int start = 0;
int middle = 0;
int end = d.length - 1;
int location = -1;
boolean found = false;
System.out.println("Enter the look for value: ");
int lookfor = scan.nextInt();
scan.close();
while(start <= end && found == false) {
middle = (start + end) / 2;
if(d[middle] == lookfor) {
found = true;
location = middle;
}
else if(d[middle] < lookfor) {
start = middle + 1;
}
else {
end = middle - 1;
}
}
System.out.println(location);
}
}
要在两个索引之间打印给定数组的子数组,可以使用following methods之一: