当前位置: 首页 > article >正文

你好!线性查找【JAVA】

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);
        }

这样子是不是更加精确~~ 

 


http://www.kler.cn/a/151977.html

相关文章:

  • 初次使用vs code时go模块安装失败的解决办法
  • 二进制搭建以太坊2.0节点-2023最新详细版文档
  • 因为jsp for循环的一个空格引起的错误
  • 验证码及其实现
  • 力扣打卡 1410-HTML实体解析器
  • Flash学习
  • 基于Linux下搭建NextCloud构建自己的私有网盘
  • B/S软件开发架构
  • 构建SQL Server链接服务器:实现跨服务器数据访问及整合
  • 被删数据库+勒索
  • lv11 嵌入式开发 轮询与中断13
  • golang面试题:字符串转成byte数组,会发生内存拷贝吗?
  • C++:OJ练习(每日练习系列)
  • RK3568 android11 实现双路I2C触摸 --GT9xx
  • exceljs读取el-upload上传的excle数据并转为json输出
  • ES6数据解构
  • uniapp IOS从打包到上架流程(详细简单)
  • 阿里云服务器部署node和npm
  • ZC-OFDM模糊函数原理及仿真
  • Android查看当前机器的ABI类型