二分查找
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列
特点
优点是比较次数少,查找速度快,平均性能好; 其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
演示图:
演示代码:
public class BinarySearch {
public static int func(int[] array, int theNumberOfSearch){
int left=0;
int right=array.length-1;
while(left<=right) {
int mid=(left+right)/2;
if (theNumberOfSearch == array[mid]) {
return mid;
}
if (theNumberOfSearch < array[mid]) {
right=mid;
}
if(theNumberOfSearch>array[mid]){
left=mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println(func(arr,6));
}
}
运行结果: 返回值为6