源代码:
C:\迅雷下载\2021072816023491335\59e95a4689eeb92f380f4ab2\202107\29976aaa-ef7a-11eb-aba5-00163e0a088c
PPT:
C:\迅雷下载\2021072816023491335\59e95a4689eeb92f380f4ab2\202009\942a5ce8-fe34-11ea-a6a1-00163e0396a1
参考文献:
C:\迅雷下载\2021072816023491335\59e95a4689eeb92f380f4ab2\202009\c53b3bcc-fe34-11ea-97a4-00163e0a088c

2.5 算法的特性

  • 输入
  • 输出
  • 有穷性
  • 确定性
  • 可行性

2.6 算法设计的要求

  • 正确性
  • 可读性
  • 健壮性
  • 时间效率高和存储量低

2.9

推导大 O 阶方法
1)用常数 1 取代运行时间中的所有加法常数。
即,不论算法函数运行多少次,只要是通过加法得到的,就改为 1。
2)在修改后的运行次数函数中,只保留最高阶项
3)如果最高阶项存在且其系数不是 1,则去除与这个项相乘的系数。
得到的结果就是大 O 阶。

2.9.5 对数阶

2 x Count >= n 退出循环
由 2Count = n 得到 x = log2n,时间复杂度是 O(logn)

2.10 常见的时间复杂度

常数阶
12
O(1)

线性阶
2n + 3
O(n)

平方阶
3n2 + 2n + 1
O(n2)

对数阶
5log2n + 20
O(logn)

nlogn阶
2n + 3nlog2n + 19
O(nlogn)

立方阶
6n3 + 2n2 + 3n + 4
O(n3)

指数阶
2n
O(2n)

时间复杂度耗费的时间从小到大排:
O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

第3章,线性表

线性表:(List) 零个或多个元素的有限序列。

数组长度:存放线性表的存储空间的长度,存储分配后这个量一般是不变的。

线性表的长度:线性表中数据元素的个数,随着线性表插入和删除操作的进行,这个量是变化的。

任意时刻,线性表的长度应该小于等于数组的长度。

3.5 顺序存储结构的插入与删除

优点:

  • 无须为表示表中元素之间的逻辑关系而增加额外的存储空间。
  • 可以快速地存取表中任一位置的元素。
    缺点:
  • 插入和删除操作需要移动大量元素。
  • 当线性表长度变化较大时,难以确定存储空间的容量。
  • 造成存储空间的“碎片”

3.6 线性表的链式存储结构

节点:

  • 节点数据
  • 下一节点地址

3.7 单链表的读取

要通过循环的移动下标,判断,才能读取到指定下标的数据。

3.8 单链表的插入与删除

3.9 单链表的整表创建

1)声明一指针 p 和计数器变量 l
2)初始化一空链表 L。
3)让 L 的头结点的指针指向 NULL,即建立一个带头结点的单链表。
4)循环:
(1)生成一新结点赋值给 p
(2)随机生成一数字赋值给 p 的数据域 p->data
(3)将 p 插入到头结点与前一新结点之间。

3.10 单链表的整表删除

3.12 静态链表

3.13 循环链表

3.14 双向链表

第4章,栈与队列

4.6 栈的链式存储结构及实现

4.8 栈的应用 —— 递归

4.9 栈的应用 —— 四则运算表达式求值

后缀表达式:叫后缀的原因,在于所有的符号都是在要运算数字的后面出现。
一种不需要括号的后缀表达法,称为逆波兰表示(Reverse Polish Notation, RPN)。

4.10 队列的定义

4.12 循环队列

第5章,串(字符串)

5.6 朴素的模式匹配算法

110页,

5.7 KMP 模式匹配算法

第6章,树

6.8.2 二叉树的遍历方法

[[二叉树的遍历方法]]

书中规则的描述认为不清晰。

6.9 二叉树的建立

6.11 树、森林与二叉树的转换

第7章,图

7.6 最小生成树

普里姆( Prim )算法
克鲁斯卡尔( Kruskal )算法

7.7 最短路径

迪杰斯特拉( Dijkstra )算法
弗洛伊德( Floyd )算法

7.8 拓扑排序

7.9 关键路径

第8章,查找

8.3 顺序表查找

8.4 有序表查找

8.5 线性索引查找

8.6 二叉排序树

8.7 平衡二叉树(AVL 树)

8.8 多路查找树(B树)

8.9 散列表查找(哈希表)概述

8.10 散列函数的构造方法

  • 直接定址法:取关键字的某个线性函数值为散列地址
  • 数字分析法
  • 平方取中法
  • 折叠法
  • 除留余数法
  • 随机数法

8.11 处理散列冲突的方法

  • 开放定址法
  • 再散列函数法
  • 链地址法
  • 公共溢出区法

第9章,排序

9.3 冒泡排序

9.4 简单选择排序

9.5 直接插入排序

9.6 希尔排序

9.7 堆排序

9.8 归并排序

9.9 快速排序

读《大话数据结构》溢彩加强版相关推荐

  1. 读大话数据结构之二--------算法(上)

    本章由高斯计算从1加到100的思想引入算法之间的比较.从而引入一个话题:什么是算法.算法其实就是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或者多个操作. 讲述了算 ...

  2. 数据结构溢彩加强版——(二)算法篇

    算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作. 文章目录 两种算法的比较 算法的特征 1.输入输出 2.有穷性 3.确定性 4.可行性 算法设 ...

  3. 《大话数据结构》样章试读

    <大话数据结构>样章试读 各位童鞋,<大话数据结构>从写作到出版,虽然经历了一些坎坷,但终于还是在今天正式在一些网店发售了.现在提供两章的完整版试读PDF文件,希望能给您有所 ...

  4. 《大话数据结构》读书笔记-查找

    写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书,如有侵权,请联系删除. 文章目录 8.1 开场白 8.2 查找概论 8. ...

  5. 《大话数据结构》读书笔记-栈与队列

    写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 4.2栈的定义 4.2.1 栈的定义 4.2.2 进栈出栈变 ...

  6. 《大话数据结构》读书笔记-线性表

    写在前面:本文仅供个人学习使用.<大话数据结构>通俗易懂,适合整体做笔记输出,构建体系.并且文中很多图片来源于该书. 文章目录 3.2 线性表的定义 3.3 线性表的抽象数据类型 3.4 ...

  7. 大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 21

    大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 211 第 ...

  8. 《大话数据结构》相关主题

    原文地址为: <大话数据结构>相关主题 <大话数据结构>读者须知 <大话数据结构>第三次印刷已将勘误中的错误修正,在2011年12月在各大网上书店中有售.再次向已经 ...

  9. 《大话数据结构》1、2数据结构、算法

    大话数据结构 大话设计模式 head first设计模式 Java核心技术 卷1 深入理解Java虚拟机(JVM高级特性与最佳实践) 图解HTTP 大话数据结构 数据结构介绍, 算法推导大O阶的方法, ...

  10. 《大话数据结构》前言

    前 言 本书起因 大家好!我是<大话设计模式>(2008年初出版)的作者,三年来,承蒙广大读者的厚爱,<大话设计模式>取得了较大的成功.仅在当当网,截止本文写作时,就已经有10 ...

最新文章

  1. 2019-06-26 某小型支付公司面试经历
  2. 博途创建vb脚本实例_基于博途V15 西门子S7-1200 定时器指令应用实例
  3. hdu 4277 USACO ORZ
  4. fabric sdk php,Hyperledger Fabric PHP SDK
  5. 代码实现两个数交换方法
  6. 软件项目管理课后题下载【共5个章(1、3、4、5、6)】
  7. jvm默认的初始化参数_您是否应该信任JVM中的默认设置?
  8. mysql gtid基础_MySQL 基础知识梳理学习(四)----GTID
  9. sdut 最长公共子序列问题
  10. Python3 threading的多线程管理中的线程管理与锁
  11. 拓端tecdat|R语言基于协方差的SEM结构方程模型中的拟合指数
  12. UNIGUI中如果获得Session情况
  13. 中国蟹养殖和捕捞现状分析,淡水养殖产量占比最高「图」
  14. matlab巴特沃斯滤波器用法
  15. java植物大战僵尸_植物大战僵尸java游戏
  16. C++中类,对象,封装,继承(派生),多态
  17. Cartographer学习总结
  18. 解决Abaqus有限元分析不收敛的6条建议
  19. linux提交abaqus作业,命令行提交 Abaqus 任务
  20. android 飞行模式做了什么好处,手机飞行模式居然这么多好处,你竟然都不知道!...

热门文章

  1. Visual Studio code 代码格式化整理
  2. JS对DOM节点的操作--增加节点,删除节点
  3. DATE_ADD() 函数使用
  4. matlab绘制共用x轴图像 subplot子图不显示问题
  5. 如何设计一个权限管理模块?
  6. cop2000实现补码两位乘
  7. 51单片机——红外遥控 C语言入门编程
  8. 计算机组装物料清单,什么叫物料清单
  9. (day9) 自学Java——常用API
  10. JPA一:理论知识和入门程序