二分查找

二分查找(折半查找):
前提: 数据已经有序排放在数组中,通过将待查的元素与数组最中间元素进行对比,如果大于中间值,则目标值可能存在于右半部分,否则可能在左半部分,查到为止

    public static void main(String[] args) {
        int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };// 源数据
        int key = 1;
        int ret = biSearch(arr, key);
        System.out.println(ret);
    }

    public static int biSearch(int arr[], int a) {
        int start = 0;
        int end = arr.length - 1;

        int mid;
        while (start <= end) {
            mid = (start + end) / 2;

            if (arr[mid] < a) {
                start = mid + 1;
            } else if (arr[mid] > a) {
                end = mid - 1;
            } else {
                return mid;
            }
        }
        return -1;//找不到
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。