侧边栏壁纸
博主头像
Epoch

Java开发、Python爬虫、微服务、分布式、前端

  • 累计撰写 93 篇文章
  • 累计创建 110 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

二分查找法--加强版

Epoch
2021-09-14 / 0 评论 / 0 点赞 / 363 阅读 / 192 字 / 正在检测是否收录...

二分查找法–加强版

package com.xmaven.test;

/**
 * @Author: Ambition
 * @Description TODO
 * @Date: 2021/9/14 5:52 下午
 * @Version 1.0
 */
public class BinarySearchDemo {
    
    public static void main(String[] args) {
        int[] list = {2, 4, 7, 10, 11, 45, 50, 59, 60, 66, 69, 70, 79};
        System.out.println(binarySearch(list, 2));
        System.out.println(binarySearch(list, 11));
        System.out.println(binarySearch(list, 12));
        System.out.println(binarySearch(list, 1));
        System.out.println(binarySearch(list, 3));
    }
    
    
    /**
     * @param list 查询的数组
     * @param key  查找的元素
     * @return 如果return >= 0 找到正确的索引  如果 return < 0 找不到正确的索引 返回值的绝对值就是我们需要插入的元素的索引位置
     */
    public static int binarySearch(int[] list, int key) {
        int low = 0;
        int high = list.length - 1;
        while (high >= low) {
            int mid = (high + low) / 2;
            if (key < list[mid]) {
                high = mid - 1;
            } else if (key == list[mid]) {
                return mid;
            } else {
                low = mid + 1;
            }
        }
        return -low - 1;
    }
    
}
0

评论区