线性查找是逐一比对,发现有相同的值,就返回下标。 查找一个满足条件的值:
public class LinearSearch2 {
public static void main(String[] args) {
int[] arr = {1,4,89,10,6,15};
int index = linearSearch(arr,89); //将查找算法的返回值保存到index中
//进行判断
if(index == -1) {
System.out.println("没有找到该元素");
} else {
System.out.println("该元素的下标为:" + index);
}
}
/**
* 这里实现的线性查找是找到一个满足的值,并返回
* @param arr
* @param value
* @return
*/
public static int linearSearch(int[] arr, int value) {
//线性查找是逐一对比,发现有相同的值就返回下标
for (int i = 0; i < arr.length; i++) {
if(arr[i] == value) {
return i;
}
}
return -1;
}
}
查找多个满足条件的值:
import java.util.ArrayList;
import java.util.List;
public class LinearSearch {
public static void main(String[] args) {
int[] arr = {1,4,89,12,10,6,12,15,12};
//判断如果集合为空,就输出提示信息
if(linearSearch(arr, 12).isEmpty()) {
System.out.println("没有找到该元素");
} else {
System.out.println(linearSearch(arr, 12));
}
}
/**
* 这里实现的线性查找是找到多个满足的值,并将它们存到一个集合中,返回集合
* @param arr
* @param value
* @return
*/
public static List linearSearch(int[] arr, int value) {
//用一个集合存多个相同元素的下标
List<Integer> list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
if (arr[i] == value) {
list.add(i);
}
}
return list;
}
}