数据结构笔记1 绪论,线性表

学习视频:

第01周c--1.2基本概念和术语1_哔哩哔哩_bilibili

01《数据结构》绪论_哔哩哔哩_bilibili

数据:

1.数值型的数据:整数,实数

2.非数值型的数据:文字、图像..

数据元素:(元素,记录,结点,顶点)

 数据项:构成数据元素的不可分割的最小单位

数据对象:性质相同的数据元素的集合,是数据的一个子集

 

不能只说是一个值的集合

空间复杂度:取次数最高那项,且不取其系数

线性表可以为空表

线性表的顺序实现:

 1.线性表中的位序是从1开始的,而数组中元素的下标是从0开始的

2.按位置访问:随机存取,通过首地址和元素序号在0(1)时间内找到指定的元素

3.按值查找,时间复杂度是o(n),因为需要遍历

线性表的链式实现:

1.存储是非顺序

 

其实可以认为,什么的指针指向什么

而像这种,就是取值 

删除操作:

 

不管怎么说,respect

12.12_黑马数据结构与算法笔记Java_黑马程序员数据结构-CSDN博客 

 

 最好数出来


为什么创建一个包括n个结点的有序单链表的时间复杂度是o(n的平方)


创建一个包括n个节点的有序单链表的时间复杂度为O(n^2)的原因主要在于插入操作的复杂性。当构建有序链表时,每次插入新节点都需要保持链表的有序性,这意味着每个新节点都需要找到其在链表中的正确位置然后插入。随着链表的增长,后续节点的插入操作将越来越耗时,因为每次插入前都需要遍历已经排序的部分链表来确定插入位置。

具体分析如下:

1. **初始情况**:插入第一个节点时,时间复杂度为O(1),因为链表为空,无需比较。

2. **插入第二个节点**:需要与第一个节点比较一次,时间复杂度O(1)。

3. **插入第i个节点**:需要与前面i-1个已排序的节点逐一比较,以找到合适的位置插入,这一过程的时间复杂度为O(i)。

4. **总时间复杂度**:随着i从1增长到n,每次插入的平均比较次数呈线性增长,因此总的比较次数为1+2+3+...+(n-1) = n*(n-1)/2,这是一个关于n的二次函数,其时间复杂度为O(n^2)。

简而言之,每次插入操作的比较次数随链表长度线性增加,导致整体的时间复杂度上升到二次级别。如果使用更高效的插入方法,如二分查找后再插入(但这要求链表支持随机访问,而单链表通常不便于直接实现这一点),则可能降低这个时间复杂度,但在基本的单链表结构和操作下,创建有序单链表的时间复杂度确实是O(n^2)。
 

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

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

相关文章

人类语言处理nlp部分笔记——四、GPT3

参考自李宏毅课程-人类语言处理 四、GPT3 1. 介绍 GPT-3是一个language model,它的参数量相当巨大,是ELMO的2000倍。 2. GPT-3的野心 虽然GPT-3和BERT等模型一样,但是GPT-3是不需要针对特定的task做finetune的,也就是说GPT-3…

React 18

创建 React 18 脚手架项目 全局安装 create-react-app npm install -g create-react-app yarn global add create-react-app . 确认是否已安装 create-react-app npm list -g create-react-app yarn global list | grep create-react-app . 如果安装失败 有时&#xff0…

4-Maven-plugins之打包方式

4-Maven-plugins之打包方式 方式一【推荐】&#xff1a;使用maven-jar-plugin和maven-dependency-plugin 打成的最终jar包中没有所依赖的jar包。依赖跟自己的代码不在一个jar包中。 传说中的"瘦Jar" <build><directory>${project.basedir}/target</d…

第3章 列表简介

第3章 列表简介 3.1 列表是什么3.1.1 访问列表元素3.1.2 索引从 0 而不是 1 开始3.1.3 使用列表中的各个值 3.2 修改、添加和删除元素3.2.1 修改列表元素3.2.2 在列表中添加元素3.2.3 从列表中删除元素 3.3 组织列表3.3.1 使用方法 sort()对列表永久排序3.3.2 使用函数 sorted(…

继续引爆!5天连出2个里程碑成果,离子阱量子计算机嗨翻天!

5月30日&#xff0c;清华大学的一项成果被Nature审稿人称为“量子模拟领域的巨大进步”&#xff01;“值得关注的里程碑”&#xff01;该成果就是中国科学院院士、清华大学交叉信息研究院教授段路明带领研究组在量子模拟计算领域取得的重要突破。段路明研究组首次实现512离子二…

码蹄集部分题目(2024OJ赛18期;并查集+ST表+贪心)

1&#x1f40b;&#x1f40b;史莱姆融合&#xff08;钻石&#xff1b;并查集&#xff09; 时间限制&#xff1a;1秒 占用内存&#xff1a;128M &#x1f41f;题目描述 &#x1f41f;题目思路 这道题目使用并查集&#xff0c;同一集合的所有元素的最顶上的祖父节点是统一的。…

获取当前周周一和周日的日期(格式20240607)

获取当前周周一和周日的日期&#xff08;格式20240607&#xff09; function getWeekStartAndEndDate() {const today new Date() // 获取当前日期const dayOfWeek today.getDay() // 获取今天是周几&#xff0c;返回值是0&#xff08;周日&#xff09;到6&#xff08;周六&…

Spring框架相关集成

Spring RMI使用和原理_springboot rmi原理-CSDN博客 Spring监听器和定时任务_定时任务怎么用监听器-CSDN博客 Spring框架提供的工具类-CSDN博客 SpringBoot注解解析-CSDN博客 SpringBoot集成shiro认证授权框架_shiro 1.12-CSDN博客 SpringBoot集成Swagger-CSDN博客 Spring…

逆波兰表达式

目录 一、定义 二、算法步骤 三、代码实现 一、定义 逆波兰表达式又叫做后缀表达式&#xff0c;是一种没有括号&#xff0c;并严格遵循“从左到右”运算的后缀式表达方法。 二、算法步骤 1、首先构造一个运算符栈&#xff0c;此运算符在栈内遵循越往栈顶优先级越高的原则。 …

使用shell脚本检查Oracle表空间使用率

需求&#xff1a;需要监控Oracle数据库表空间使用率和是否设置自动扩展&#xff0c;展示在监控平台上 脚本如下&#xff1a; [oracleracdb2:/home/oracle]$ cat tablespace.sh #!/bin/bashexport ORACLE_BASE/u01/app/oracle export ORACLE_HOME/u01/app/oracle/product/19.3…

20240607每日通信--------VUE3前端引入scoket-io,后端引入Netty-SocketIO,我成功了,希望一起交流沟通

无语 前置&#xff1a; VUE3 前端集成scoket-io socket.io-client Sringboot 3.0JDK17集成Netty-SocketIO Netty-SocketIO 失败原因一&#xff1a; 前期决定要写demo时候&#xff0c;单独了解了&#xff0c;后端引入Netty-SocketIO注意事项&#xff0c;详见我先头写的博客 前…

路径

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 用于定位一个文件或者目录的字符串被称为一个路径。在程序开发时&#xff0c;通常涉及两种路径&#xff0c;一种是相对路径&#xff0c;另一种是绝对…

G5 - Pix2Pix理论与实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 理论知识图像翻译CGANU-NetPix2Pix损失函数模型结构生成器差别器 模型效果总结与心得体会 理论知识 前面已经学习了GAN与CGAN&#xff0c;这节开始学习P…

LeetCode1143最长公共子序列

题目描述 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08…

大厂真实面试题(一)

滴滴大数据sql 取出累计值与1000差值最小的记录 1.题目 已知有表t_cost_detail包含id和money两列,id为自增,请累加计算money值,并求出累加值与1000差值最小的记录。 2.分析 本题主要是想找到累加值域1000差距最小的记录,也就是我们要对上述按照id进行排序并且累加,并…

正则表达式----IP地址合法性判断

一、正则表达式常见匹配字符快速回顾 符号描述.匹配处换行符\n之外任意1个字符[]匹配[]中任意一个\d一个0-9数字\D匹配非数字\w匹配单词字符&#xff1a;a-z、A-Z、0-9\W匹配非单词字符\s匹配空格、tab健\S匹配非空格&#xff0c;tab健 常用的匹配规则-匹配字符数量 匹配前一个…

SQL注入二次注入

SQL注入是一种常见的网络攻击技术&#xff0c;它主要针对基于SQL语言的数据库系统。在Web应用程序中&#xff0c;如果开发者没有对用户输入进行适当的过滤或转义&#xff0c;攻击者就可以通过在输入字段中插入或“注入”SQL命令来操纵数据库&#xff0c;从而执行未授权的数据库…

【机器学习基础】Python编程06:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机器学习库,如scikit-learn、TensorFlow、Keras和PyTorch等,这些…

婚恋网源码 相亲交友小程序源码

婚恋网源码 相亲交友小程序源码 1、婚恋相亲交友系统 超大型婚恋社交、相亲、征婚、互动系统&#xff0c;继承了此前O2O、SNS及B2C的优秀特点 2、媒婆推广返利系统 针对广大婚恋网站运营者而推出的一套共享返利婚恋模式&#xff0c;全民红娘&#xff0c;会员裂变式增长 3、…

VBA语言専攻通知20240608

通知20240608 各位学员∶本周MF系列VBA技术资料增加621-625讲&#xff0c;T3学员看到通知后请免费领取,领取时间6月7日晚上19:00-6月8日晚上20:00。本次增加内容&#xff1a; MF621:为组合框添加工作表数据 MF622:在代码中使用π值 MF623:在窗体上使用切换按钮 MF624:删除…