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