前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >经典算法——顺序查找

经典算法——顺序查找

作者头像
鱼找水需要时间
发布2023-02-16 19:17:15
8580
发布2023-02-16 19:17:15
举报
文章被收录于专栏:SpringBoot教程

😁学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰👍 活动地址:CSDN21天学习挑战赛⭐️⭐️⭐️

文章目录

顺序查找

顺序查找也叫线性查找

查找过程:从列表中的第一个元素开始,逐个元素进行比较,如果找到相等的元素,则 查找成功 ,如果直至表中最后一个记录数与目标值都不相等,则表示 查找失败 。 顺序查找算法适用于绝大多数场景,既可以在有序序列中查找目标元素,也可以在无序序列中查找目标元素。

算法效率

算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间。

实现思路

给定一个查找表

在这里插入图片描述
在这里插入图片描述

设:查找的目标值为67,步骤如下

  1. 从表中的第一个元素开始比较,51 != 67,指针右移
在这里插入图片描述
在这里插入图片描述
  1. 指针指向第二个元素,也就是4, 4 != 67,指针右移
在这里插入图片描述
在这里插入图片描述
  1. 指针指向第三个元素,也就是1212 != 67,指针右移
在这里插入图片描述
在这里插入图片描述
  1. 指针指向第四个元素,也就是6767 == 67查找成功
在这里插入图片描述
在这里插入图片描述

代码实现

Java代码实现

定义顺序查找方法

代码语言:javascript
复制
 private int orderFind(int number) {
        //定义一个数组
        int[] arr = {51, 4, 12, 67, 45, 23, 68, 32};

        //定义数组下标
        int i = 0;
        //便利整个数组
        while (i < arr.length) {
            //如果当前元素和number相等,直接返回当前的下标
            if (arr[i] == number) {
                return i;
            }
            //每循环一次,下标+1
            i++;
        }
        //如果最后未找到,那么返回一个标识 -1
        return -1;
    }

调用方法

代码语言:javascript
复制
// 定义要查找的数字
int findNum = 67;
// 顺序查找 67这个数字在数组中的位置
int i = orderFind(findNum);
//如果结果不为-1,那么说明在数组中匹配到了相等的元素
if(i != -1){
    System.out.println("在数组中匹配到数字,下标为:" + i );
}else{
    System.out.println("在数组中未找到");
}

效率分析

时间复杂度

  • 最坏的情况

最坏的情况就是完整的遍历了整个集合,也并未找到目标的key,此时循环被完整的执行,循环执行次数与n相关,所以时间复杂度为O(n)

  • 最好的情况

最好的情况就是第一次就找到了元素,此时的时间复杂度为常数级O(1)

  • 平均情况

综合两种情况,顺序查找的时间复杂度为O(n),属于查找较慢的算法。

空间复杂度

由于算法不会改变原有的元素集合,只需要一个额外的变量控制索引变化,所以空间复杂度为常数级:O(1)

顺序查找的优缺点

1)缺点:查找效率较低,特别是当待查找集合中元素较多时,不推荐使用顺序查找。 2)优点:算法简单而且使用面广。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 顺序查找
  • 算法效率
  • 实现思路
  • 代码实现
  • 效率分析
    • 时间复杂度
      • 空间复杂度
      • 顺序查找的优缺点
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档