折半查找(Binary Search)又称为二分查找,其要求数据序列呈线性结构,也就是经过排序的数据序列。可以使用冒泡排序、快速排序等排序算法,先进行一次排序。
import java.util.*;
public class Main {
static final int N=5;
public static void main(String[] args){
int[] shuzu = {2,8,14,25,36};
for(int k=0; k<N; k++){
System.out.println(shuzu[k]);
}
int index = BinarySearch(shuzu, N, 36);
System.out.println(index);
}
public static int BinarySearch(int arr[], int n, int target){
int low , mid, high;
low =0;
high = n-1;
while(low <= high){
mid = (low + high)/2; //找到中间位置元素的下标
if(arr[mid] == target){
return mid;//找到返回 下标
}else if(arr[mid] > target){
high = mid-1;//查找左半部分
}else if(arr[mid] < target){
low = mid +1; // 查找右半部分
}
}
return -1;
}
}