【21天学习挑战赛】经典算法-----顺序查询

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

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

CSDN—21天学习挑战赛—【经典算法】

学习专栏地址

经典算法_一头小山猪的博客-CSDN博客

学习计划

1,学习目标

经典算法的基础学习,以及数据结构入门级学习

**

学习日记

**

1,学习知识点

经典算法-----顺序查询

3,学习的收获
  • 线性表:是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串等

  • 线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。

  • 顺序表:顺序表是用一段连续内存依次存储数据元素的线性结构,一般情况下采用数组存储。顺序表是常见的线性表

  • 顺序查找概念::从数据对象的一端开始,依次将值和待查找的值进行比较,相等则为查找成功;反之,所有数据中都不存在待查找的值则为查找失败。

  • 算法的时间复杂度为O(n)

  • 数据的逻辑位置 = 数据的索引位置 +1

4,实操

C语言实现

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

}

可运行代码中设置了一个名为 a 的顺序表(模仿),例如在查找表为{11,34,20,10,12,35,41,32,43,14}找到关键字为 41 的数据元素的位置,则运行效果为:

输入表中的数据元素:
11,34,20,10,12,35,41,32,43,14

请输入查找数据的关键字:
41

数据在查找表中的位置为:
索引值:6
逻辑值:6+1 = 7

运行逻辑:

  1. 假设从元素 11 开始向右逐个查找。显然,元素 11 不是要找的目标元素:
  2. 继续查看表中的下一个元素 34,也不是要找的目标元素:
  3. 采用同样的方法,逐个查看表中的各个元素是否为目标元素,直到找到 值为41 的数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值