将原本的数组用自己写的reverse反转之后用binarySearch搜索,为什么返回的却是-1,求解(语言-java)


//这是以下代码
import java.util.Arrays;
public class test {
    public static int[] reverse(int[] list)
    {
        int[] result=new int[list.length];
        int i=0,j=0;
        for(i=0,j=list.length-1;j>=0;j--,i++)
        result[i]=list[j];
        return result;
    }
    public static void main(String[] args) {
        int[] ans= new int[10];
        int i;
        for(i=0;i<10;i++)
        ans[i]=i+2;
        ans=reverse(ans);
        i=Arrays.binarySearch(ans,4);
        System.out.println(i);
    }
}

我发现用升序排序的数组,使用binarySearch查找数字可以得到他的下标。

img

img

img

这是该方法的底层实现,用二分法实现,要求数组必须升序排列