列表

  • 从向量到列表,是从静态到动态。

  • 列表的基本组成单位叫做节点node。各节点通过指针或引用彼此联接,在逻辑上构成一个线性序列。前驱、后继。首节点、末节点。

  • 列表改用循位置访问的方式。利用节点的相互引用,找到特定的节点。
    实现:

  • 列表节点是独立地“封装”起来的。ListNode

  • 列表的ADT接口

  • 列表的C++实现 List
    头尾哨兵不可见

    头、首、末、尾的秩分别理解为:-1、0、n-1、n。

排序算法

  • 选择排序:依次在剩余数据中获得最大的那个。然后把最大的那个放到后缀有序子序列的最前端。(原理与起泡排序类似,每次都是选择最大的,但时间复杂度比起泡排序低,因为这是小步慢跑和一步到位的区别)总是将序列分为前缀无序子序列和后缀有序子序列。总体复杂度依然是O(n2)。但元素移动操作远远少于起泡排序。时间复杂度主要来自于元素比较操作。
  • 插入排序:分为前缀有序子序列和后缀无序子序列。从后缀的首元素开始,查找前缀子序列中不大于当前元素的后面一个位置。最好的总体复杂度为O(n),最坏的总体复杂度为O(n2

数据结构与算法邓俊辉——(三)相关推荐

  1. 数据结构与算法邓俊辉——(二)

    向量 抽象数据类型:数据模型+定义在该模型上的一组操作(vector.list) 数据结构:基于某种特定语言,实现ADT的一整套算法 向量(vector):是数组的抽象与泛化.由一组元素按线性次序封装 ...

  2. 数据结构与算法邓俊辉——(一)

    计算:研究对象:规律,技巧:研究目标:高效地计算,低耗. 计算的概念:借助某种工具,按照一定规则,以明确而机械的形式进行. 算法: 输入--待处理的信息(问题) 输出--经处理的信息 正确性--的确可 ...

  3. 408数据结构(王道版+邓俊辉版)

    第一章  绪论 上 第一章 绪论 下 第二章 向量 上 第二章 向量 下 第三章 列表 第四章 栈与队列 第五章 二叉树 第六章 图 第七章 搜索树 第八章 高级搜索树(上) 第八章 高级搜索树(下) ...

  4. 邓俊辉数据结构学习心得系列——如何正确衡量一个算法的好坏

    数据结构这门课主要关注如何设计合理的数据结构和算法,来简化时间复杂度和空间复杂度. 想要科学的解决这样一个优化的问题,最核心的思想也是最基础的,就是要量化问题.这也是将数学运用在实际问题中的一个基石. ...

  5. 邓俊辉数据结构学习心得系列——数据结构中所研究的算法

    写在前面的话: 本文只是个人学习邓俊辉老师C++数据结构的整理,包含了很多个人的见解(从内容到材料的组织形式).所整理的内容不保证逻辑性和完整性,仅供参考. 算法的基本性质: 有正确的输入 有正确的输 ...

  6. 算法与数据结构(邓俊辉)第一章

    算法与数据结构(邓俊辉)第一章 斐波那契数列 斐波那契数列几种方法快慢的对比 斐波那契数列 斐波那契数列几种方法快慢的对比 //头文件 #pragma once class Fib { //Fibon ...

  7. 邓俊辉 《数据结构》笔记1 绪论

    邓俊辉 <数据结构>笔记1 绪论 CSDN转图床总是崩,如果全写完再上传一次要调好多,感觉很麻烦,所以写一点更新一点,会持续更新 提前发出来还有个好处就是push自己更新不会咕咕咕,哈哈 ...

  8. 邓俊辉算法训练营第三期(带完整课件)

    课程章节 第0周:调整姿势,迎接算法挑战 ୧(๑•̀◡•́๑)૭ 必读:课前预习清单 邓俊辉:学习算法的一些建议 专题课:扬帆起航,开启算法之旅 解题指南:如何提交作业&栈排序习题解答 习题课 ...

  9. 清华大学邓俊辉-数据结构MOOC笔记-树的概念及逻辑表示

    清华大学邓俊辉-数据结构MOOC笔记-树的概念及逻辑表示 有关概念: 与图论略有不同,数据结构中的树:1.需要为每一颗树指定一个特殊的顶点,作为"根"(root),对应rooted ...

最新文章

  1. 2019年热销微型笔记本计算机排名,2019年笔记本销量排行_电脑品牌排名:2019笔记本电脑前十排行...
  2. 高压放电与防静电塑料包装
  3. 十、从中缀向后缀转换表达式
  4. 拨号云服务器怎么自动配置网关_如何解决路由器静态IP+PPPoE拨号双链路负载分担问题...
  5. android权限 启动失败,Android 6.0打开失败:EACCES(权限被拒绝)
  6. c语言转换yyyy年mm月,C语言求教 输入一个日期(格式:YYYY/MM/DD),要求输出这个日期对应星期几 有些年分无结果?...
  7. Redis 实战指南
  8. Charles安卓8手机抓包
  9. 三菱plc pwm指令_三菱PLC高速处理指令编程(新手教学)
  10. 安卓手机投屏到win10电脑无需安装任何软件(电脑和手机必须连接同一网络或者wifi)【投影到此电脑灰色无法操作怎么办?】by qiweb 端午节
  11. 【图片服务】深入分析阿里云中图片服务的架构经验
  12. 一看就会!一篇全搞定!权限处理专家--Shiro保姆式教学,超详细!
  13. 【面向对象学习笔记day05】面向对象封装案例2+士兵突击+开发枪类+开发士兵类+身份运算符+is 与 == 区别
  14. 最大子序列之和(C语言)
  15. java hgetall_redis的hGetAll函数的性能问题(记Redis那坑人的HGETALL)
  16. 想要成为数据分析师 需要具备哪些专业技能?
  17. 扑克牌自动图像识别在博彩行业的应用
  18. 趣谈 DHCP 协议,有点意思。
  19. 世界上最难的视觉图_【若寒专栏】被喻为世界上最难的联赛——2019赛季日本J2联赛球队总结(7 完结)...
  20. 微信小程序云开发实现问卷调查的创建与填写

热门文章

  1. Exchange Server 2016下载链接
  2. java里的c.gettime()什么意思_new Date().getTime() 返回的是什么
  3. 如何在WhatsApp上阻止某人
  4. 办公小技巧,批量修改文件名,手把手教你
  5. 学习笔记:新技术与新趋势(演讲者:王煜全-海银资本合伙人)
  6. actions vuex 请求_vue中在vuex的actions中请求数据实例
  7. java发送QQ邮件详细步骤
  8. 操作系统之——磁盘存储器管理
  9. python_分水岭算法
  10. outlook如何撤回邮件?(中英文)