1、顺序查找法
代码:
int[] a = {3, 2, 1, 0};
int b = 3;
for (int i = 0; i < a.length; i++) {
if (b == a[i]){
System.out.println(b+"在数组中的下标是:"+i);
break;
}
}
结果:
3在数组是的下标是:0
2、二分查找法
代码:
int[] a = {10,28,555,88881,0};
for (int i = 0;i<a.length-1;i++){
for (int j = 0;j<a.length-1;j++){
if (a[j]>a[j+1]){
int b = a[j];
a[j] = a[j+1];
a[j+1] = b;
}
}
}
// 以上是排序
int start =0;
int end = a.length-1;
int num =10;
while (start<=end){
int mid = (start+end)/2;
if (num == a[mid]){
System.out.println(num+"在数组中的下标是:"+mid);
return;
}else if (num<a[mid]){
end=mid-1;
} else {
start=mid+1;
}
}
System.out.println(num+"不在数组中");
结果:
10在数组中的下标是:1
解释:
二分查找要求先升序排序在查找,查找的时候就是先找中间的,如果中间的不相等,就和中间的进行判断,确定接下来在找那个地方的,如何找中间的呢,那就是进行找到中间的下标,由于开始下标不能小于结束下标,所以这样写判断条件