二分查找

二分查找

二分查找算法

  • 二分查找(BinarySearch)又称为折半查找,优点是比较次数少,查找速度快,平均性能好,其缺点是要求带查表是有序表,且插入删除困难,因此,折半查找方法适用于不经常变动而且查找频繁的有序列表
       package com;
    
       import java.util.Arrays;
    
       public class BinnarySearch {
        public static void main(String[] args) {
            int[] nums = { 20, 22, 33, 42, 44, 53, 66 };
            Arrays.sort(nums);// 排序
            System.out.println(binnarySearch(nums, 66));
        }

    /**
     * 二分查找算法
     * 特点,查找速度快
     * 
     * @param nums
     * @param key
     * @return
     */
    public static int binnarySearch(int[] nums, int key) {

        int start = 0;
        int end = nums.length;
        int mid = -1;
        //处理逻辑
        while (start <= end) {
            mid = (start + end) / 2;
            if (nums[mid] == key) {
                return mid;
            } else if (nums[mid] < key) {
                start = mid + 1;
            } else if (nums[mid] > key) {
                end = mid - 1;
            }
        }
        return -1;
    }
}

你可能感兴趣的:(二分查找)