顺序表的查找(按位查找、按值查找)(数据结构与算法)

news2025/4/27 15:42:29

顺序表的基本操作:按位查找、按值查找

在这里插入图片描述

顺序表的按位查找

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

#define MaxSize 10                  //定义最大长度
typedef struct{
	ElemType data[MaxSize];          //用静态的“数组”存放数据元素   静态分配
	int length;                     //顺序表的当前长度
}SqList;                            //顺序表的类型定义(静态分配方式)

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

顺序表的按位查找---------动态分配

在这里插入图片描述

#define InitSize 10              //顺序表初始长度
typedef struct{
	ElemType *data;            //指示动态分配数组的指针
	int MaxSize;                //顺序表的最大容器
	int length;                //顺序表的当前长度
}SeqList;                     //顺序表的类I型那个定义(动态分配方式)

ElemType GetElem(SeqList L, int i){
	return L.data[i-1];
}
	ElemType *data; 
	//如果一个ElemType占6B, 即sizeof(ElemType)  == 6, 指针data指向的地址为2000

如果换一个类型的指针,指向同一个地址,int *p; 一个int占4B

在这里插入图片描述
在这里插入图片描述
能够实现随机存储的基础就在于顺序表中所有的数据元素在内存里都是连续存放的,并且这些数据元素的数据类型相同,也就是说每个数据元素所占的内存空间一样大。所以我们只需要知道一个顺序表的起始地址,每个数据元素的大小,就可以立即找到第 i 个元素的位置。
在这里插入图片描述

顺序表的按值查找

LocateElem(L, e); 按值查找操作,在表L中查找具有给定关键字值的元素。

#define InitSize 10                  //顺序表初始长度
typedef struct{
	ElemType * data;                 //指示动态分配数组的指针
	int MaxSize;                     //顺序表的最大容量
	int length;                      //顺序表的当前长度
}SeqList;                            //顺序表的类型定义(动态分配方式)

//在顺序表L中查找第一个元素值等于e的元素,并返回其位序。
int LocateElem(SeqList L, ElemType e){
	for (int i = 0; i < L.length; i++)
		if (L.data[i] == e)   //判断元素是否等于查找元素
			return i+1;    //数组下标为i的元素值等于e, 返回其位序 i + 1
	return 0;          //推出循环,说明查找失败
}

在这里插入图片描述

  • 刚开始 i = 0, length = 6; 第一个数据元素data[0]为6,和9不相等。if条件不满足, 进行 i++操作,i 由0----->1.第二轮循环依然不相等,i 变为2,第三轮找到9,返回位序 i + 1, 即返回3。
    另外要注意,如果是两个结构类型查找,不能进行上述if条件的判断,需要进行运算符重载。

在这里插入图片描述

按值查找的时间复杂度

在这里插入图片描述

知识回顾思维导图

在这里插入图片描述

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

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

相关文章

大模型如何商业变现?小i机器人发布华藏大模型生态

华藏通用大模型生态体系由“113”三部分组分&#xff0c;即&#xff1a;一个能力基座一项产品支撑三项服务保障。 今年以来&#xff0c;市场上各类人工智能大模型如雨后春笋&#xff0c;但如何将大模型进行科学的商业变现&#xff0c;成为摆在行业面前的一道难题。在刚刚召开的…

Nginx+cpolar实现内网穿透多个Windows Web站点端口

文章目录 1. 下载windows版Nginx2. 配置Nginx3. 测试局域网访问4. cpolar内网穿透5. 测试公网访问6. 配置固定二级子域名7. 测试访问公网固定二级子域名【总结】&#xff1a; 1. 下载windows版Nginx 进入官方网站(http://nginx.org/en/download.html)下载windows版的nginx 下载…

Postman如何导出接口的几种方法?

本文主要介绍了Postman如何导出接口的几种方法&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下 前言&#xff1a; 我的文章还是一贯的作风&#xff0c;简确用风格&#xff08;简单确实有用&#xff09;&a…

Apifox创建团队 项目 接口 邀请成员步骤演示

我们打开Apifox 找到 个人空间 然后 点击新建团队 然后这里 我们输入名字 点击确定 我们的团队就出来了 然后 我们点击新建项目 然后肯定是 http 项目名称输入一下 然后 语言 我们中国肯定是中文的 然后点击确定 建好之后 我们就会进入自己的项目啦 然后 我们可以新建个接…

VScode中配置python环境

声明&#xff1a;本文出自B站UP主---火星动力猿 下载教程点击下面链接 【文档包】VScode配置Python【发布】.zip - 蓝奏云文件大小&#xff1a;2.4 M|https://wwn.lanzouh.com/iG5tn03iqwwh

单例模式及其使用场景

单例模式&#xff08;Singleton&#xff09;&#xff1a;指在一个系统中某个类只存在一个实例&#xff0c;类中自行实例化&#xff0c;实例向该系统提供统一的访问接口。 单例模式有两种表现形式&#xff0c;饿汉式&#xff1a;类加载时&#xff0c;就进行实例化&#xff1b;懒…

微信小程序获取用户信息

个人博客 微信小程序获取用户信息 个人微信公众号&#xff0c;求关注&#xff0c;求收藏&#xff0c;求指错。 文章概叙 本文主要讲的是小程序获取用户信息的&#xff0c;更新测试时间是2023-10-25 更改原因 首先&#xff0c;官网上的解释是这样的&#xff0c;为了安全合…

零基础入门物流运输小程序制作教程

随着小程序的发展和普及&#xff0c;越来越多的企业和个人选择制作自己的小程序。在这个指南中&#xff0c;我们将从头开始&#xff0c;一步步指导您制作一个运输贸易类型的小程序。 首先&#xff0c;您需要在乔拓云平台上注册并登录。在乔拓云平台的后台中&#xff0c;您将找到…

吉比特c++游戏服务端面经,真的不简单。

先给大家说说我为什么一直要分享这个面经&#xff1f; 众所周知&#xff0c;我们可以根据面经来复盘自己的八股和反思自己在面试过程中没注意到的点&#xff0c;这样就会慢慢做得更好。 我们中的很多人&#xff0c;在学生时代可能没有一个很好的学习规划&#xff0c;就是那种…

Linux C语言开发-D10控制语句if

abs&#xff08;&#xff09;绝对值函数&#xff0c;头文件为stdlib.h sqrt()开根号函数&#xff0c;头文件为math.h&#xff0c;并且在编译时-lm链接数学库 %.2f是float后的小数只输出两位 判断一个年份是否是润年 1、能被4整除&#xff0c;但不能被100整除的年份是润年 2、…

商机的智能引擎 | 拓世法宝AI智能直播一体机,助您实现商业突破,打造卓越直播带货时代!

在19世纪50年代&#xff0c;美国加州掀起了一场淘金热潮。在这个时期&#xff0c;一位名叫李维斯特劳斯的德国青年也来到了淘金圣地旧金山。当时&#xff0c;淘金生意狼多肉少&#xff0c;李维转而经营起了日用品的小生意。在与一位淘金工人的聊天中&#xff0c;他了解到淘金工…

【ONE·Linux || 网络基础(一)】

总言 主要内容&#xff1a;简述网络传输流程&#xff08;TCP/IP五层模式概念认知&#xff0c;Mac地址、端口号、网络字节序等&#xff09;&#xff0c;演示socke套接字编程&#xff08;UDP模式&#xff09;。 文章目录 总言1、基础简述1.1、计算机网络背景1.2、认识网络协议&a…

华为机试题:HJ3 明明的随机数

目录 第一章、算法题1.1&#xff09;题目描述1.2&#xff09;解题思路与答案1.3&#xff09;牛客链接 友情提醒: 先看文章目录&#xff0c;大致了解文章知识点结构&#xff0c;点击文章目录可直接跳转到文章指定位置。 第一章、算法题 1.1&#xff09;题目描述 题目描述&…

比Nginx测试桩更方便,ShenYu网关的Mock插件

有时候为了方便测试&#xff0c;我们需要模拟 HTTP 外部接口的返回结果。通常情况下&#xff0c;我们可以使用 Nginx 测试桩来实现这个目的。然而&#xff0c;Nginx 的使用门槛较高&#xff0c;可能对一些初级开发和测试人员来说有一定的难度。相比之下&#xff0c;Apache Shen…

MySQL---索引+事务

文章目录 索引什么是索引&#xff1f;索引的作用索引的使用索引背后的数据结构&#xff08;B树&#xff09; 事务什么是事务&#xff1f;事务的使用事务的ACID特性原子性&#xff08;Atomicity&#xff09;一致性&#xff08;Consistency&#xff09;隔离性&#xff08;Isolati…

【CMN】Power management

CMN-700包括几种电源管理能力&#xff0c;要么由外部控制&#xff0c;要么由SoC辅助。CMN-700具有以下电源管理功能&#xff1a; &#xff08;1&#xff09;几个不同的预定义电源状态。这些状态包括SLC Tag和Data ram的all/half/none能否被powered up, powered down, or in re…

SpringBoot2.7.14整合redis7

需要的依赖库&#xff1a; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</gro…

kubernetes(4)

目录 flannel网络插件 calico网络插件 部署 网络策略 限制pod流量 限制namespace流量 同时限制namespace和pod 限制集群外部流量 k8s存储 configmap 字面值创建 通过文件创建 通过目录创建 通过yaml文件创建 使用configmap设置环境变量 使用conigmap设置命令行参数 通过数据卷使…

android10.0(Q) MTK 6765 user版本打开root权限

前言 相比较 Android8.1、9.0 而言&#xff0c;Android10.0 版本 的 root变得相当麻烦&#xff0c;10.0 中引入了动态分区机制&#xff0c;同样的要想完全 adb root&#xff0c;需要 fastboot 解锁&#xff0c;然后关闭 verity 才能 adb remount 成功。我尝试和之前一样修改 f…

10.26数字钟设计,数电第二次实验总结

实验七 数字钟设计&#xff08;*****&#xff09; 实现一个六十进制数字时钟&#xff0c;秒到 60 则归零重加&#xff0c;同时让分加1&#xff0c;分加到60归零重加&#xff0c;并让小时加 1&#xff0c;小时加到24归零重加。要求用数码管1,0显示秒值&#xff0c;数码管3,2显示…