1.初次相识
线性查找也称线性搜索,是一种简单的查找方式,它是按照元素在数据集合中出现的顺序逐个进行比较,直到找到目标元素或查找完整个集合为止。具体实现方式是从集合的第一个元素开始遍历,逐个比较每个元素与目标元素是否相等,如果相等则返回该元素在集合中的位置,否则继续寻找下一个元素。当遍历整个集合后仍未找到目标元素,则返回未找到的信号。
2.初次代码实现
public static int serSearch(int[] array, int value) {
for (int i = 0; i < array.length; i++) {
if (array[i] == value) {
return i;
}
}
return -1;
}
这种实现方法比较简单,但也有一个问题,如果有重复的数字,那么他只返回第一个数字的下标
3.灵机一动
我们不妨用集合来接受~
public static List<Integer> serSearch(int[] array, int value) {
ArrayList list = new ArrayList();
for (int i = 0; i < array.length; i++) {
if (array[i] == value) {
list.add(i);
}
}
return list;
}
4.测试
public static void main(String[] args) {
int[] array = new int[]{1,1,1,2,1,1};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要查找的数字:");
int num = scanner.nextInt();
List list = serSearch(array, num);
for (Object result : list) {
System.out.println("你所查找的数字所在的下标:" + result);
}
这样子是不是更加精确~~