当前位置: 首页 > news >正文

02-2.3.6 顺序表和链表的比较

喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑‍💻
此外,《程序员必备技能》专栏和《程序员必备工具》专栏(该专栏暂未开设)日后会逐步更新,感兴趣的小伙伴可以点一下订阅、收藏、关注!🚀
谢谢大家!🙏

逻辑结构

不管是顺序表还是链表,都属于线性表,都是线性结构

物理结构/存储结构

顺序表采用了顺序存储的方式

  • 优点:支持随机存取、存储密度高
  • 缺点:大片连续空间分配不方便、改变容量不方便
    链表采用链式存储的方式
  • 优点:离散的小空间分配方便、改变容量方便
  • 缺点:不可随机存取、存储密度低(需要指针)

数据的运算/基本操作

复习回忆思路:创销、增删改查

顺序表:

  • 需要预分配大片连续空间
  • 若分配空间过小,之后不方便扩展容量
  • 若分配空间过大,则浪费内存资源
    链表:
  • 只需要分配一个头结点(也可以不要头结点,只声明一个头指针),之后方便扩展
    如果我们的线性表采用
  • 静态分配:静态数组。那么容量不可改变
  • 动态分配:动态数组。即便使用malloc, free函数改变容量,但是需要移动大量元素,时间代价很高

链表:

  • free依次删除各个结点——手动回收空间
    顺序表:
  • 修改length = 0——系统自动回收空间

malloc申请的地址,是内存中的堆区,堆区不会由系统自动回收
所以在写代码的时候mallocfree必须成对出现

增、删

顺序表:

  • 插入/删除元素要将后续的元素都后移/前移
  • 时间复杂度: O ( n ) O(n) O(n),时间开销主要来自移动元素
  • 如果数据元素很大,则移动的时间代价很高
    链表:
  • 插入/删除元素只需要修改指针即可
  • 时间复杂度: O ( n ) O(n) O(n),时间开销主要来自查找目标元素
  • 查找元素的时间代价更低

顺序表:

  • 按位查找: O ( 1 ) O(1) O(1)
  • 按值查找: O ( n ) O(n) O(n),若表内元素有序,可在 O ( l o g 2 n ) O(log_2 n) O(log2n)时间内找到(如二分查找*)
    链表:
  • 按位查找: O ( n ) O(n) O(n)
  • 按值查找: O ( n ) O(n) O(n)

如何抉择?

表长难以估计、经常要增加/删除元素————链表
表长可预估、查询(搜索)操作较多————顺序表

知识回顾

开放式问题的回答思路:

  • 可以先探讨逻辑结构
  • 再讨论存储结构
  • 然后再探讨一些比较重要的基本操作的实现效率
  • 最后得出结论

相关文章:

02-2.3.6 顺序表和链表的比较

喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑‍💻 此外,《程序员必备技能》专栏和《程序员必备工具》专栏(该专栏暂未开设)日后会逐步更新,感兴趣的小伙伴可以点一下订阅…...

C++ : 模板初阶

标题:C : 模板初阶 水墨不写bug 正文开始: C语言的问题 : 写不完的swap函数 在学习C语言时,我们有一个经常使用的函数swap函数,它可以将两个对象的值交换。 我们通常这样实现它: void swap(int t1,int t2)…...

FFA-Net:用于单图像去雾的特征融合注意力网络

摘要 论文链接:https://arxiv.org/pdf/1911.07559v2 在这篇论文中,我们提出了一种端到端的特征融合注意力网络(FFA-Net)来直接恢复无雾图像。FFA-Net架构由三个关键组件组成: 一种新颖的特征注意力(FA&…...

网工内推 | 联通公司,云计算售前,AWS认证优先

01 联通数字科技有限公司 🔷招聘岗位:云计算售前工程师 🔷职责描述: 1.了解私有云,公有云,混合云等云计算技术知识,了解云计算行业现状及发展趋势。 2.承担区域项目售前工作支持,为…...

[Redis]Zset类型

Zset有序集合相对于字符串、列表、哈希、集合来说会有一些陌生。 它保留了集合不能有重复成员的特点,但与集合不同的是,有序集合中的每个元素都有一个唯一的浮点类型的分数(score)与之关联,着使得有序集合中的元素是可…...

【云原生】Kubernetes----Ingress对外服务

目录 引言 一、K8S对外方式 (一)NodePort 1.作用 2.弊端 3.示例 (二)externalIPs 1.作用 2.弊端 3.示例 (三)LoadBalancer 1.作用 2.弊端 (四)Ingress 二、Ingress的…...

项目管理之maven svn

管理jar包之间依赖关系 编译、打包、清理、测试等一系列构建工具 一、Maven的标志 1、每一个maven工程都有一个pom.xml maven项目坐标 <groupId>com.aaa</groupId>//项目路径 <artifactId>web</artifactId>项目名称 <version>0.0.1-SNAPS…...

Redis篇 list类型在Redis中的命令操作

list在redis基本的命令 一.基本命令1.lpush和range2.lpushx rpushx3.lpop rpop4.lindex linsert llen5.lrem6.ltrim lset7.blpop brpop 一.基本命令 list在redis中相当于数组或者顺序表. 1.lpush和range 2.lpushx rpushx 3.lpop rpop 4.lindex linsert llen 如果要插入的列表中…...

【C++课程学习】:类和对象(上)(类的基础详细讲解)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f35f;1.1类的引出&#xff1a; &#x1f35f;1.2类的结构&#xff1a; &#x1f35f;1.3类的…...

HTML 转义字符(escape characters)及其对应的符号(symbols)

以下是常见的 HTML 转义字符及其对应的符号&#xff0c;这些可以用于在 HTML 或 JSX 中避免解析错误和特殊字符的冲突&#xff1a; 空格 ( ): 或 引号: 单引号&#xff08;&#xff09;&#xff1a;&apos;、&lsquo;、、&rsquo;双引号&#xff08;"&#x…...

CPASSOC代码详解

加载环境 library("MASS") require(MASS) # Modern Applied Statistics with S&#xff0c;"S"指的是S语言&#xff0c;由贝尔实验室的约翰钱伯斯&#xff08;John Chambers&#xff09;等人开发。S语言是R语言的前身&#xff0c;许多R语言的语法和功能都…...

dirfuzz-web敏感目录文件扫描工具

dirfuzz介绍 dirfuzz是一款基于Python3的敏感目录文件扫描工具&#xff0c;借鉴了dirsearch的思路&#xff0c;扬长避短。在根据自身实战经验的基础上而编写的一款工具&#xff0c;经过断断续续几个月的测试、修改和完善。 项目地址&#xff1a;https://github.com/ssrc-c/di…...

计算机发展史 | 从起源到现代技术的演进

computer | Evolution from origins to modern technology 今天没有参考资料哈哈 PPT&#xff1a;&#xff08;评论区&#xff1f;&#xff09; 早期计算工具 算盘 -算盘是一种手动操作的计算辅助工具&#xff0c;起源于中国&#xff0c;迄今已有2600多年的历史&#xff0c;是…...

45-3 护网溯源 - 为什么要做溯源工作

官网:CVERC-国家计算机病毒应急处理中心 西工大遭网络攻击再曝细节!13名攻击者身份查明→ (baidu.com) 护网溯源是指通过技术手段追踪网络攻击的来源和行为,其重要性体现在以下几个方面: 安全防御:了解攻击源头可以帮助组织加强网络安全防御,及时采取措施防止攻击的再次…...

【JavaEE 进阶(二)】Spring MVC(下)

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多进阶知识 目录 1.前言2.响应2.1返回静态界面2.2返回数据2.3返回HTML代码 3.综合练习3.1计算器3.2用户登…...

光波长 深入程度

UV深入程度&#xff08;UVC&#xff0c; UVB&#xff0c; UVA&#xff09;https://mp.weixin.qq.com/s?__bizMzkwNTM0Njk3MA&mid2247483934&idx1&sn92d1ba67ead404e7714af11ec0526786&chksmc0f868ebf78fe1fd0610493e6f49a5d90835a20a829a900746906cda12f2fa12…...

MySQL数据库常见工具的基础使用_1

在上一篇文章中提到了对MySQL数据库进行操作的一些常见工具 mysqlcheck mysqlcheck是一个用于数据库表的检查&#xff0c;修复&#xff0c;分析和优化的一个客户端程序 分析的作用是查看表的关键字分布,能够让sql生成正确的执行计划(支持InnoDB,MyISAM,NDB)检查的作用是检查…...

C语言中指针的说明

什么是指针&#xff1f; 在C语言当中&#xff0c;我们可以将指针理解为内存当中存储的地址&#xff0c;就像生活当中&#xff0c;一个小区里面&#xff0c;在小区里面有很单元&#xff0c;每一栋单元&#xff0c;单元内的房间有着不同的房间号&#xff0c;我们可以同过几栋几单…...

webrtc vp8/9视频编解码介绍

文章目录 一、libvpx项目介绍libvpx基本概念编码器使用流程解码器使用流程示例代码:官方文档和资源二、VP8/9在WebRTC中的应用2.1 VP82.2 VP92.3如何选择哪种编码方式2.4 vp9编码的主要步骤2.5 vp9解码C++代码示例注意事项三、webrtc在音视频传输中是怎样选择vp8还是vp9<...

【机器学习300问】107、自然语言处理(NLP)领域有哪些子任务?

自然语言处理&#xff08;NLP&#xff09;是计算机科学、人工智能和语言学领域的一个交叉学科&#xff0c;致力于让计算机能够理解、解析、生成和与人类的自然语言进行互动。自然语言指的是人们日常交流使用的语言&#xff0c;如英语、汉语等&#xff0c;与计算机编程语言相对。…...

面试被问准备多久要孩子?这样回答

听说有人面试被问到多久要孩子的问题&#xff0c;当时觉得很尴尬&#xff0c;不知如何回答&#xff0c;怕回答的不好不被录用&#xff0c;其实你可以这样回答&#xff0c;让面试官心满意足。 A 面试官&#xff1a;结婚了吗&#xff1f; 我&#xff1a;结婚了 面试官&#xff1…...

HCIP-Datacom-ARST自选题库__多种协议简答【11道题】

1.BGP/MPLSIP VPN的典型组网场景如图所示&#xff0c;PE1和PE2通过LoopbackO建立MP-IBGP&#xff0c;PE1和PE2之间只传递VPN路由&#xff0c;其中PE1BGP进程的部分配置已在图中标出&#xff0c;则编号为0的命令不是必须的。(填写阿拉伯数字) 3 2.在如图所示的Hub&amp;Spok…...

C# 泛型函数

1.非约束 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace MyGeneirc {public class GeneircMethod{/// <summary>/// 泛型方法解决&#xff0c;一个方法&#xff0c;满足不同参数类型…...

C# Onnx E2Pose人体关键点检测

C# Onnx E2Pose人体关键点检测 目录 效果 模型信息 项目 代码 下载 效果 模型信息 Inputs ------------------------- name&#xff1a;inputimg tensor&#xff1a;Float[1, 3, 512, 512] --------------------------------------------------------------- Outputs ---…...

YOLO10:手把手安装教程与使用说明

目录 前言一、YOLO10检测模型二、YOLO安装过程1.新建conda的环境 yolo10安装依赖包测试 总结 前言 v9还没整明白&#xff0c;v10又来了。而且还是打败天下无敌手的存在&#xff0c;连最近很火的RT-DETR都被打败了。那么&#xff0c;笑傲目标检测之林的v10又能持续多久呢&#…...

EasyRecovery2024永久免费crack激活码注册码

在数字化时代&#xff0c;数据已经成为我们生活和工作中不可或缺的一部分。无论是个人用户还是企业用户&#xff0c;都面临着数据丢失的风险。一旦数据丢失&#xff0c;可能会给我们的工作带来极大的不便&#xff0c;甚至可能对企业造成重大损失。因此&#xff0c;数据安全和恢…...

Linux Centos内网环境中安装mysql5.7详细安装过程

一、下载安装包 下载地址&#xff08;可下载历史版本&#xff09;&#xff1a; https://downloads.mysql.com/archives/community 二、解压到安装路径 tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz三、重命名 mv /usr/local/mysql-5.7.20-linux-glibc2.12-x86_64 …...

新字符设备驱动实验学习

register_chrdev 和 unregister_chrdev 这两个函数是老版本驱动使用的函数&#xff0c;现在新的字符设备驱动已经不再使用这两个函数&#xff0c;而是使用Linux内核推荐的新字符设备驱动API函数。新字符设别驱动API函数在驱动模块加载的时候自动创建设备节点文件。 分配和释放…...

篇1:Mapbox Style Specification

目录 引言 地图创建与样式加载 Spec Reference Root sources type:vector矢量瓦片...

实时监控与报警:人员跌倒检测算法的实践

在全球范围内&#xff0c;跌倒事件对老年人和儿童的健康与安全构成了重大威胁。据统计&#xff0c;跌倒是老年人意外伤害和死亡的主要原因之一。开发人员跌倒检测算法的目的是通过技术手段及时发现和响应跌倒事件&#xff0c;减少因延迟救助而造成的严重后果。这不仅对老年人群…...

wordpress 多说评论插件/网页模板

文档编写目的Fayson在CDP7.1.1 的使用过程中&#xff0c;发现在使用Hive SQL 中默认无法修改Hive 的资源池&#xff0c;只能提交到defalut 或者 root.hive 队列下&#xff0c;而且显示的提交用户都是hive。这对于一个生产环境中的资源池管理是致命的缺陷&#xff0c;本文主要介…...

百度地图嵌入wordpress/网络营销的功能有哪些?

对于一个项目而言&#xff0c;项目管理过程中最重要的是履约创效&#xff0c;是衡量一个项目实际的管理水平。 所谓履约指的是企业在发展的过程中&#xff0c;实际履行合同的能力&#xff0c;对于基层项目来说&#xff0c;履约能力的高低能够从项目的工期&#xff0c;质量&…...

做seo时网站发文目的/长尾词挖掘工具

写在前面可能你会不相信&#xff0c;我是从玩pytorch中过来的&#xff0c;我觉得有必要记录一下&#xff0c;transpose这个坑还非踩不可,为了说的清楚一点儿&#xff0c;我多铺垫一点儿&#xff0c;先说说numpy数组维度的理解引子>>> a np.arange(start0, stop24)arr…...

大学营销型网站建设实训课程/百度推广官网登录

作者&#xff1a;粘新育 任甲林 来源&#xff1a;希赛网  http://www.csai.cn 2004年06月28日 软件开发是以人为核心的过程&#xff0c;对人的依赖性远高于传统的硬件生产企业&#xff0c;为了保持开发能力的稳定性&#xff0c;一方面需要定义软件过程&#xff0c;以过程为枢…...

我公司是做网站开发的怎么纳税/seo收录排名

在上篇随笔中对于客户实例传递的xml实现中&#xff0c;手动定义了xml的数据格式&#xff0c;如果现在对产品实例进行传递&#xff0c;那么还要手动对产品实例进行xml进行数据格式化。现在有一套为数据传递定义的协议&#xff0c;那就是soap。其实html也是一种数据存储格式&…...

孵化器网站平台建设/腾讯域名注册官网

1.安装Keil 5&#xff0c;过程略。 2.去GD官网&#xff08;中文名&#xff1a;兆易创新&#xff09;&#xff0c;选择【资料下载】【开发板资料】&#xff0c;选择对应的芯片型号&#xff0c;下载Package&#xff08;我这里的芯片为GD32F103C8T6&#xff09; 3.下载后解压&…...