二分查找

187 阅读1分钟

二分查找

###二分查找算法

  • 二分查找(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;
      }
    

    }