循环函数求值怎么求图里的函数

img


输出所查找函数的下标不存在返回-1,只返第一个,顺序查找
输出去所查找函数的下标不存在返回-1,只返第一个,二分查找

 public static void main(String[] args) {
        int[] a={3,100,2,10,5,17,11,4,9};
        int[] b={1,3,7,9,15,20,32,40,55};

        // 顺序查找
        int seach = seach(a, 5);
        System.out.println(seach);  // 输出:4,5所在位置下标为4

        // 二分法查找
        int i = binarySearch(b, 20);
        System.out.println(i);   // 输出:5,20所在位置下标为5

        // 先排序(默认按照升序),然后二分法查找
        int m = binarySortSearch(a, 17);
        System.out.println(m);   // 数组a按照升序排列,17的下标为7
    }

    private static int seach(int[] array,int num) {
        for (int i = 0; i < array.length; i++) {
            if(array[i]==num){
                return  i;
            }
        }
        return -1;
    }

    public  static int binarySearch(int[] array,int num){
        int low = 0;
        int high = array.length-1;
        while (low <= high){
            int mid = (low + high)/2;
            if (array[mid] < num){
                low = mid+1;
            }else if (array[mid] > num){
                high = mid -1;
            }else if (array[mid] == num)
                return mid;
        }
        return -1;   
    }

    public  static int binarySortSearch(int[] array,int num){
        // 默认升序排列
        Arrays.sort(array);
        int low = 0;
        int high = array.length-1;
        while (low <= high){
            int mid = (low + high)/2;
            if (array[mid] < num){
                low = mid+1;
            }else if (array[mid] > num){
                high = mid -1;
            }else if (array[mid] == num)
                return mid;
        }
        return -1;
    }

如有帮助,欢迎采纳!