package com.rj.bd.lx;
import java.util.Arrays;
/**
* @desc 数组元素的查找之二分法
* @author yhx
* @time 2019-09-11
*
*/
public class ErFenFa {
public static void main(String[] args) {
int[] a = {123,235,45,6,7,9,95,4};
// 由于二分法适合已经排序好的数组所以先将数组进行排序
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length-1-i; j++) {
if(a[j+1]<a[j]){
int temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
System.out.println(Arrays.toString(a));
System.out.println(Search(a,6));
}
private static int Search(int[] a, int value) {
int low = 0;
int high = a.length-1;
while(low<high){
int mid=(low+high)/2;
if(value==a[mid]){
return mid;
}
if(value>a[mid]){
low=low+1;
}
if(value<a[mid]){
high=mid-1;
}
}
return -1;
}
}
来源:https://www.cnblogs.com/yhx0921/p/11508327.html