数据结构--顺序表的查找

news2024/9/29 21:23:27

数据结构–顺序表的查找

顺序表的按位查找

目标:
GetElem(L,i):按位查找操作。获取表L中第i个位置的元素的值。

代码实现

#define MaxSize 10
typedef struct
{
    ElemType data[MaxSize];
    int len;
}Sqlist;


ElemType GetElem(Sqlist L, int i)
{
	return L.data[i-1];
}
#define InitSize 10
typedef struct
{
    ElemType *data;
    int MaxSize;
    int len
}Sqlist;

ElemType GetElem(Sqlist L, int i)
{
	return L.data[i-1];
}

时间复杂度

O(1)
由于顺序表的各个数据元素在内存中连续存放,因此可以根据起始地址和数据元素大小立即找到第i个元素——“随机存取”特性

顺序表的按值查找

目标:
LocateElem(Le):按值查找操作。在表L中查找具有给定关键字值的元素。

代码实现

#define InitSize 10

typedef struct 
{
    Elemtype *date;
    int MaxSize;
    int len;
} SeqList;

int LocateElem(SeqList L, Elemtype e)
{
    for (int i = 0; i <L.len; i++)
        if (L.date[i] == e)
            return i + 1;
        return 0;
}

时间复杂度

最好情况:目标元素在表头
循环1次; 最好时间复杂度 \color{red}最好时间复杂度 最好时间复杂度=O(1)
最坏情况:目标元素在表尾
循环n次; 最坏时间复杂度 \color{red}最坏时间复杂度 最坏时间复杂度=O(n);
平均情况:假设目标元素出现在任何一个位置的概率相同,都是 1 n \frac{1}{n} n1
目标元素在第1位,循环1次;在第2位,循环2次;…;在第n位,循环n次
平均循环次数 = 1 × 1 n + 2 × 1 n + 3 × 1 n + . . . . . . + n × 1 n = n ( n + 1 ) 2 × 1 n = n + 1 2 1\times\frac{1}{n}+ 2\times \frac{1}{n} +3 \times \frac{1}{n} + ...... + n \times \frac{1}{n} = \frac{n(n+1)}{2} \times \frac{1}{n}=\frac{n+1}{2} 1×n1+2×n1+3×n1+......+n×n1=2n(n+1)×n1=2n+1
平均时间复杂度 \color{red}平均时间复杂度 平均时间复杂度= O(n)

知识点回顾与重要考点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/687602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海外问卷调查项目可靠吗?是违法的吗?

可靠。 最近&#xff0c;一个备受瞩目的创业项目在社会上引起了广泛关注&#xff0c;这个项目集创业、全职和兼职于一体&#xff0c;被称为"海外问卷调查项目"&#xff0c;成为了无数人追逐的新选择。 然而&#xff0c;自中美贸易摩擦以来&#xff0c;中国人对&quo…

使用CloudOS快速实现K8S容器化部署

关于容器技术 容器技术&#xff08;以docker和Kubernetes为代表&#xff09;呱呱坠地到如今&#xff0c;在国内经历了如下3个阶段&#xff1a; 婴儿期&#xff1a;2014-2016年的技术探索期&#xff1b; 少儿期&#xff1a;2017-2018年的行业试水期&#xff1b; 少年期&…

1.设计模式之七大原则和介绍

0.为什么我要学习设计模式呢? 我发现mysql的jdbc有factory有工厂模式(编程思想,不指定语言都可以用) mq有一个QueueBuilder().setArg().xxx().build建造者模式,单例模式貌似也遇到过,前端也遇到了好几个设计模式的问题,比如prototype深拷贝和浅拷贝 所以我决定系统的学习一下设…

TC8:SOMEIP_ETS_004-005

SOMEIP_ETS_004: Burst_Test 目的 检查DUT是否可以在短时间内处理突发请求并返回所有请求的响应 测试步骤 Tester:新建有效SOME/IP消息Tester:使用method echoUINT8发送突发SOME/IP Request消息DUT:返回每个请求消息的响应消息期望结果 3、DUT:返回每个请求消息的响应消息…

学redis这一篇就够了

目录 1.下载安装启动 1.1 临时启动服务 2.2 默认服务安装 2.常用五大基本数据类型 2.1 key操作 2.2 字符串&#xff08;String&#xff09; 2.3 列表&#xff08;List&#xff09; 2.4 Set&#xff08;集合&#xff09; 2.5 Hash&#xff08;哈希&#xff09; 2.6 Zs…

分离表示学习:通用图像融合框架

IFSepR: A General Framework for Image Fusion Based on Separate Representation Learning &#xff08;IFSepR&#xff1a;一种基于分离表示学习的通用图像融合框架&#xff09; 提出了一种基于分离表示学习的图像融合框架IFSepR。我们认为&#xff0c;基于先验知识的共模…

Fast Segment Anything Model(FastSAM)

Fast Segment Anything Model&#xff08;FastSAM&#xff09; Fast Segment Anything Model&#xff08;FastSAM&#xff09;是一个仅使用SAM作者发布的SA-1B数据集的2%进行训练的CNN Segment Anything模型。FastSAM在50倍的运行速度下实现了与SAM方法相当的性能。 SAM代码&a…

pubg 依赖安装

一、安装python 1、进入官网 https://www.python.org/ 2、勾选Add python.exe to PTHA 3、自定义下载 测试和文档不需要勾选&#xff0c;然后next 4、自定义安装路径 点击install安装 安装成功&#xff0c;点击close。 5、测试 windr键&#xff0c;输入cmd 输入python回…

基于SSM的餐厅点餐系统设计与实现(Java+MySQL)

目 录 第一章 绪论 1 1.1系统研究背景和意义 1 1.2研究现状 1 1.3论文结构 2 第二章 相关技术说明 3 2.1 JSP(Java Server Page)简介 3 2.2 Spring框架简介 4 2.3 Spring MVC框架简介 5 2.4 MyBatis 框架简介 5 2.4 MySql数据库简介 5 2.6 Tomcat简介 6 2.7 jQuery简介 7 2.8系…

计算机毕业论文内容参考|基于大数据的信息物理融合系统的分析与设计方法

文章目录 导文摘要前言绪论课题背景国内外现状与趋势:课题内容:相关技术与方法介绍:系统架构设计:数据采集与处理:数据存储与管理:数据分析与挖掘:系统优化与调试:应用场景:挑战与机遇:研究方向:系统分析:系统设计:系统实现:系统测试:总结与展望:

SpringBoot原理(1)--@SpringBootApplication注解使用和原理/SpringBoot的自动配置原理详解

文章目录 前言主启动类的配置SpringBootConfiguration注解验证启动类是否被注入到spring容器中 ComponentScan 注解ComponentScan 注解解析与路径扫描 EnableAutoConfiguration注解 问题解答1.AutoConfigurationPackage和ComponentScan的作用是否冲突起因回答 2.为什么能实现自…

WIN10上必不可少的5款优质软件

噔噔噔噔&#xff0c;作为一个黑科技软件爱好者&#xff0c;电脑里肯定是不会缺少这方面的东西&#xff0c;今天的5款优质软件闪亮登场了。 颜色拾取器——ColorPix ​ ColorPix是一个颜色拾取器工具&#xff0c;可以让你快速地获取屏幕上任意位置的颜色值&#xff0c;如RGB、…

ivshmem-plain设备原理分析

文章目录 前言基本原理共享内存协议规范 具体实现设备模型数据结构设备初始化 测试验证方案流程Libvirt配置Qemu配置测试步骤 前言 ivshmem-plain设备是Qemu提供的一种特殊设备&#xff0c;通过这个设备&#xff0c;可以实现虚机内存和主机上其它进程共存共享&#xff0c;应用…

618美妆个护28个榜单:欧莱雅稳住冠军?珀莱雅大爆发第二?

存量时代的购物造节大竞争&#xff0c;作为消费复苏后的首场大促&#xff0c;今年的618堪称史上最“卷”&#xff0c;也承载着消费振兴、经济复苏等希望。 不过&#xff0c;今年所有平台都未公布具体GMV&#xff0c;某种程度说明大促造节的时代俨然已成过去式了。 5月18日&am…

怎么去除视频里的背景音乐?其实非常简单!

如何去除视频背景音乐&#xff1f;在视频处理中&#xff0c;有时我们需要从视频中提取声音并进行处理&#xff0c;而不仅仅是简单地去除整个背景音乐。我们可能需要有选择性地去除人声或背景音乐。这个处理过程对于选用合适的工具至关重要。在本文中&#xff0c;我将分享两种可…

【⑦MySQL】· 一文了解四大子查询

前言 ✨欢迎来到小K的MySQL专栏&#xff0c;本节将为大家带来MySQL标量/单行子查询、列子/表子查询的讲解✨ 目录 前言一、子查询概念二、标量/单行子查询、列子/表子查询三、总结 一、子查询概念 子查询指一个查询语句嵌套在另一个查询语句内部的查询&#xff0c;这个特性从My…

抖音林客生活服务商机构

抖音林客生活服务商机构是在抖音平台上提供各种生活服务的机构或组织。这些机构通常会提供家政服务、保洁服务、美容美发服务等&#xff0c;也有一些提供餐饮、旅游、电商等服务。用户可以通过抖音搜索、浏览和下单&#xff0c;享受到优质的服务体验。 这些服务商机构在抖音…

数值组件滚动趋势图联动需求拆解

技术栈&#xff1a;使用vue3的composition API tsx 进行开发 一、需求描述 直接看UI图吧。 简单描述一下&#xff1a; 数值卡片&#xff1a; 上方部分是一个数值卡片列表&#xff0c;每个卡片维护不同的集中状态&#xff0c;选中态&#xff0c;hover态。 细节&#xff1…

【测试学习】Junit5的简单使用

目录 &#x1f31f;需要知道&#xff1a; &#x1f31f;Junit学习 &#x1f308;1、常用的注解 &#x1f308;2、测试用例的执行顺序 &#x1f308;3、参数化 &#x1f308;4、断言 &#x1f308;5、测试套件 &#x1f31f;需要知道&#xff1a; 问题1&#xff1a;Selen…

ATA-4315高压功率放大器在铁路钢轨损伤检测中的应用

随着高速铁路的建设和不断发展&#xff0c;确保铁路线路的安全和稳定运行变得越来越重要。钢轨作为铁路的重要组成部分&#xff0c;其损坏可能导致严重的事故和交通堵塞。因此&#xff0c;对钢轨损伤进行及时、准确的检测至关重要。高压功率放大器作为一种精密的测试仪器&#…