1.普通查找:
使用遍历从前往后一个一个找。
代码实现:
public static void main(String[] args) {
int[] arr= {5, 6, 7, 32, 43, 44, 678};
int num = 47;
//调用方法
int i = find(arr, num);
System.out.println(i);
}
//定义方法
public static int find(int[] arr, int num){
//数组的遍历
for (int i = 0; i < arr.length; i++) {
if(arr[i] == num){
return i;
}
}
//使用-1来代表不存在这个元素
return -1;
}
2.二分查找
前提条件:数组必须是已经排序好的。
图解:
代码实现:
public static void main(String[] args) {
//准备数组
int[] arr = {5, 6, 7, 32, 43, 44, 678};
int num = 46;
//调用方法
int i = find(arr, num);
System.out.println(i);
}
//定义方法
public static int find(int[] arr, int num){
//定义最左边
int left = 0;
//定义最右边
int right = arr.length-1;
//循环
while(right >= left){
//定义中间位置
int mid = (left+right)/2;
//比较
if(num > arr[mid]){
left = mid+1;
}else if(num < arr[mid]){
right = mid-1;
}else{
return mid;
}
}
//循环结束代表找不到
return -1;
}
来源:CSDN
作者:qq_43973203
链接:https://blog.csdn.net/qq_43973203/article/details/104553732