《大话数据结构》读书笔记
来源:互联网 发布:js金沙7726下载 编辑:程序博客网 时间:2024/06/05 04:13
数据结构是一门研究分数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等徐昂管问题的学科。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构:是指数据对象中数据元素之间的相互关系。集合结构、线性结构、树形结构、图形结构。
物理结构:是指数据的逻辑结构在计算机中的存储形式。顺序存储结构、链式存储结构
抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法的特性:输入输出、有穷性、确定性、可行性。
算法设计要求:正确性、可读性、健壮性、时间效率高和存储量低。
判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项(最高阶项)的阶数
O()来体现算法时间复杂度,称为大O记法。
推导大O阶:
1.用常数1取代运行时间中的所有加法常数。
2.在修改后的运行次数函数中,只保留最高阶项。
3.如果最高阶项存在且不是1,则去除与这个项相乘的常数。
得到的结果就是大O阶。
线性表:零个或多个数据元素的有限序列。
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
注意“数组的长度”和“线性表的长度”的区分。
线性表的顺序存储结构在存、读数据时,时间复杂度为O(1);插入或删除时O(n)。
线性表的链式存储。
单链表;
静态链表:用数组描述的链表,还叫游标实现法;
循环链表;
双向链表;
栈:时限定仅在表尾进行插入和删除操作的线性表,把允许插入和删除的一端称为栈顶,另一端称为栈底。栈又称为后进先出的线性表,简称LIFO结构。
如果栈的使用过程中元素变化不可预料,有时很小,有时非常大,那么最好是用链栈,反之,如果它的变化在可控范围内,建议使用顺序栈会更好一些。
栈的一个很重要的应用:在程序设计语言中实现了递归。
后缀表达式(逆波兰式):“9+(3-1)*3+10\2”—>“9 3 1 - 3 * + 10 2 / +”
队列:是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。先进先出的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为对头。
循环队列
串:是由零个或多个字符串组成的有限序列,又名叫字符串。
子串的定位操作通常称作串的模式匹配。
KMP模式匹配算法:P135
- 读书笔记-大话数据结构(1)
- 大话数据结构 读书笔记
- 《大话数据结构》读书笔记
- 大话数据结构 第一章 读书笔记
- 《大话数据结构》读书笔记
- 《大话数据结构》-程杰 读书笔记
- 《大话数据结构》读书笔记-数据结构绪论
- 《大话数据结构》读书笔记(一)
- 《大话数据结构》读书笔记(二)
- 《大话数据结构》读书笔记(三)
- 《大话数据结构》读书笔记(四)
- 《大话数据结构》读书笔记(五)
- 大话数据结构——读书笔记
- 大话数据结构 第二章 读书笔记
- 大话数据结构读书笔记 3---串
- 大话数据结构读书笔记 4---树
- 大话数据结构读书笔记 5---图
- 大话数据结构读书笔记 6---查找
- The difference between declaring a variable “id” and “NSObject *”
- Swift源码分析----swift-account-replicator(2)
- 图像配准中的仿射变换细节
- 111
- [JQuery]学习——进阶选择器
- 《大话数据结构》读书笔记
- GDB使用
- javascript元素宽度更改(表格等)源代码
- 网络套接字
- 炒冷饭系列:设计模式 抽象工厂模式
- Java POI 导出Oracle数据表写入Excel文件(Excel2007 xlsx)
- 各大OJ题集
- 基础总结篇之一:Activity生命周期
- KX鼠标悬浮提示