java练习 二分查找

        Random r=new Random();
        int arr[]=new int [10];
        for(int i=0;i<arr.length;i++)
        {
            arr[i]=r.nextInt(100);
        }
        System.out.println("随机生成的数组为:");
        for(int j:arr)
        {
            System.out.print(j+"  ");
        }
        for (int i=0;i<arr.length-1;i++)
        {
            for(int j=0;j<arr.length-1-i;j++)
            {
                if(arr[j]>arr[j+1])
                {
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println("
排序后的数组为:");
        for(int j:arr)
        {
            System.out.print(j+"  ");
        }
        Scanner sc=new Scanner(System.in);
        System.out.println("
输入要查询的数字:");
        int n=sc.nextInt();
        int w=-1,str=0,end=arr.length-1,mid;
        while(str<=end)
        {
            mid=(str+end)/2;
            if(n==arr[mid])
            {
                w=mid;
                break;
            }
            else if(n>arr[mid])
            {
                str=mid+1;
            }
            else
            {
                end=mid-1;
            }
        }
        System.out.println("找到的位置是:"+w);

原文地址:https://www.cnblogs.com/wallan/p/5489040.html