プログラムを実行すると、挿入ソートは適切に実行されますが、バイナリ検索を使用して配列内で検索する番号を尋ねると、プログラムは静止し、終了しません。 . スキャナーと関係があると思います。挿入ソートとバイナリ検索に別のスキャナーを使用して問題を解決しましたが、それを機能させるために別のスキャナーを作成する必要はありませんか?
import java.util.Scanner;
public class Search {
public static void main(String [] args){
Insertion insert = new Insertion();
Scanner input = new Scanner(System.in);
int[] array = new int[5];
int low = 0, high = array.length - 1, mid = (low+high)/2;
int num =0;
int target = 0;
for(int i = 0; i < array.length; i++){
System.out.println("Enter a number: ");
num = input.nextInt();
array[i] = num;
}
insert.insertion_srt(array, array.length);
System.out.println("Your numbers sorted: ");
for(int a = 0; a < array.length; a++){
System.out.print(array[a]+" ");
}
System.out.println("\nWhich number do you want to look for?: ");
target = input.nextInt();
while(low<=high && array[mid] != target){
if(target > array[mid])
low = mid + 1;
else
high = mid -1;
}
if(low>high)
mid = -1;
System.out.println(mid);
input.close();
}
}