要求:查找数组应为有序数组,结果返回查找值得数组索引下标,若不存在返回-1。
public class Demo_Find {
public static void main(String[] args){
int[] a = {11, 22, 33, 44, 55, 66};
System.out.println(getIndex(a, 11));
System.out.println(getIndex(a, 55));
System.out.println(getIndex(a, 77));
}
public static int getIndex(int[] arr, int value){
int min = 0;
int max = arr.length-1;
int mid = (min + max)/2;
while(arr[mid] != value){
if(arr[mid] < value){
min = mid+1;
}else if(arr[mid] > value){
max = mid-1;
}
mid = (min + max)/2;
if(min > max){
return -1;
}
}
return mid;
}
}
本文介绍了一种在有序数组中查找特定值的算法实现,通过二分查找的方式快速定位元素位置,返回元素的索引下标,若数组中不存在该值则返回-1。示例代码展示了如何使用该算法进行查找。
250

被折叠的 条评论
为什么被折叠?



