二分法查找

# 二分法查找的前提是, 数组内的数据是有序的

public class Three {
    public static void main(String[] args) {

        int[] arr = new int[]{1,2,3,4,5,6,7};
        int i = find(arr,6);
        System.out.println(i);
        System.out.println(i + "   " + arr[i]);

    }

    private static int find(int[] arr, int element) {
        int left = 0;
        int right = arr.length-1;
        int res = -1;   //要返回的结果值
        while (left <= right){
            int mid = (left + right)/2;
            if (arr[mid] < element){
                left = mid + 1;
            }else if (arr[mid] > element){
                right = mid - 1;
            }else {
                res = mid;
                break;
            }
        }
        return res;
    }
    
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容