数组二分查找法
- 定义一个类,类中含静态方法二分查找算法。
- 测试类中调用二分查找方法进行查找。
使用二分法的前提是:数组元素必须已经排序 。假设数组按升序排序。二分查找法首先将关键字与数组的中间元素进行比较,有下面三种情况:
(1)如果关键字比中间元素小,则只需在前一半数组元素中查找
(2)如果关键字和中间元素相等,则查找成功,查找结束。
(3)如果关键字比中间元素大,则只需在后一半数组元素中查找。
代码实现:
package day06;
public class binarySearch {
public static int getSearch(int[]array,int key) {
int low=0;
int high=array.length-1;
while(high>=low) {
int mid=(low+high)/2;
if(key<array[mid])
high=mid-1;
else if(key==array[mid])
return mid;
else
low=mid+1;
}
return -low-1;
}
public class binarySearchTest {
public static void main(String[] args) {
int[] arr = {11, 22, 33, 44, 55, 66, 77};
//定义需要查询的值
int key = 66;
int index=binarySearch.getSearch(arr,key);
System.out.println("查询值所对应的索引为:" + index);
}
}
线性查找法:
public static int linearSearch(int[ ]array,int key){
for(var i=0;i<array.length;i++){
if(array[i ]==key){
return i;
}
return -1;
}