二分法查找数组中某个元素的下标
在查找数组中某个元素时,如果这个数组为无序数组,那么代码实现如下
public static void main(String[] args) {
int[] arp=new int[] {2,1,5,8,4,9};
int value=5;
int index=-1;//在java中可以写出关键字方便你代码的书写
for (int i = 0; i < arp.length; i++) {
if (arp[i]==value) {
index=i;
}
}
if (value==-1) {
System.err.println(value+"不存在");
}else {
System.err.println(value+"在数组中存在,他的下标为"+index);
}
}
}
实现的结果如下
5在数组中存在,他的下标为2
在查找数组中某个元素时,如果这个数组为有序数组,那么在用以上办法一个一个挨个查找效率就会很低,此时我们可以采用二分法来查找,二分法就是先找出数组中最中间的那个数组,然后判断我们要找的这个数字在这个中间数字的左边还是右边,然后在挨个查找,这样就大大的提高了查找的效率,具体实现代码如下
public static void main(String[] args) {
int[] ayy=new int[] {2,4,5,6,7,8,9};
int value=6;//为需要查找的数在这里插入代码片
int index=-1
int left=0;//最左边的数
int right=ayy.length-1;//最右边的数
int mid=(right+left)/2;
while (left<=right) {
if (ayy[mid]==value) {
index=mid;
break;
}else if(value>ayy[mid]){
left=mid+1;
}else {
right=mid-1;
}
}
if (index==-1) {
System.err.println(value+"不存在");
}else {
System.err.println(value+"在数组中的下标是:"+index);
}
}
}
实现的结果如下
5在数组中存在,他的下标为2