顺序查找算法


活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…


欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:

**

学习日记

学习文章源自于:传送门

学习主要内容

  1. 什么是算法
  2. 顺序查找
  3. 算法实践

算法概念

算法可以在有限的空间和时间内用定义明确的形式语言来表示,以计算函数。算法的一个典型例子是欧几里德算法,用于确定两个整数的最大公约数。在逻辑上,一个算法完成所需的时间是无法测量的,因为它与我们习惯的物理维度无关,这种不确定性导致无法找到既适合在某种意义上又适合抽象术语使用的算法定义。

算法表达

算法可用多种符号表示,包括自然语言、伪代码、流程图、drakon图表、编程语言或控制表。伪代码、流程图、drakon图表和控制表是表达算法的结构化方式,避免了自然语言语句中常见的许多歧义。编程语言主要用于以计算机可以执行的形式表达算法,但通常被用作定义或记录算法的一种方式。

计算机算法

在计算机系统中,算法是软件开发人员用软件编写的逻辑实例, 使预定的“目标”计算机能够有效地从给定输入生成输出。一个最优算法,在旧硬件中运行,会比在更高效的硬件中运行的时间复杂度更高的算法产生更快的结果。

顺序查找

  • 顺序查找
    从数组的一边开始,对逐个元素进行比较,

  • 折半查找
    又称二分查找,一种效率较高的一种查找方法,但是要求算法有序。

  • 索引查找
    索引查找主要分为基本索引查找和分块查找,核心思想是对于无序的数据集合,先建立索引表,使得索引表有序或分块有序,结合顺序查找与索引查找的方法完成查找。

简介:
算法执行的过程简单粗暴,就是从数组的一端开始逐个扫描,挨个元素进行比较,直到找到元素位置,或将所有的元素扫描一遍。

伪代码
i = 1
while i <= A.length
    if A[i] == key
        return i
    i++
return -1

​## 算法实现

  • 输入数据: A={11,34,20,10,12,35,41,32,43,14}, key = 41(key为带查找元素)
  • 代码实现
public class SequentialSearch {

    public static void main(String[] args) {
        // input data
        int[] a = {11,34,20,10,12,35,41,32,43,14};
        int key = 41;
        // 调用算法,并输出结果
        int result = search(a, key);
        System.out.println(result);
    }

    private static int search(int[] a,int key) {
        // 初始化变量
        int i = 0;
        // 使用循环遍历整个数组
        while (i < a.length){
            // 将集合中的元素与key进行比较
            if (a[i] == key){
                // 找到目标元素,提前返回
                return i + 1;
            }
            // 每次索引下标后移
            i++;
        }
        // 循环结束还未触发内部的return则代表未找到,此时返回-1
        return -1;
    }

}

output数据: 7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值