有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java阵列“不是”扫描仪问题

当我运行这个程序时,它会正确地进行插入排序,但是当我使用二进制搜索询问你想在数组中搜索哪个数字时,程序会静止不动,不会终止或做任何事情。我相信这和我的扫描仪有关。我已经解决了这个问题,使用了一个单独的扫描仪进行插入排序和二进制搜索,但我不应该创建一个单独的扫描仪来让它工作,是吗

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();

    }

}

共 (0) 个答案