1、数据结构阅读《大话数据结构》一书,总结下来一些东西;总结的比较粗,部分思想暂时理解不了,先放一放,后面通过学习其他的东西后,再回过头来消化这些知识点
数据的逻辑结构数据结构是相互之间存在一种或多种特定关系的数据元素的集合
1.集合结构
属于同一集合,元素平等
2.线性结构
元素一对一
3.树状结构
元素一对多的层次关系
4.图状结构
元素多对多
数据的物理结构
1.顺序存储
元素存放在地址连续的存储单元,数据逻辑关系与物理关系一致
2.链式结构
把数据存在任务任意的 存储单元中,地址连不连续都可以;通过指针找到相关联的数据位置
2、时间算法复杂度
推导方法
1.用常数1取代时间中的所有加法常数 2.修改的次函数中,只保留最高阶 3.如果最高阶存在且不是1,则去除与这个项相乘的常数,得到的结果就是大O阶
- 常数阶 O(1)
int sum = 0,n=100; //执行一次 sum = sum+n; //执行一次 System.out.printf(sum); //执行一次 O(1)
- 线性阶 O(n)
- 对数阶 Ologn
- 平方阶 O(n²)
- 顺序存储结构
存储位置连续,插入慢,查找快(下标查找)
- 链式存储结构
- 单链表
- 静态链表
- 循环链表
- 双向循环链表
查找慢,插入删除块;空间换时间4、栈与队列
- 栈
栈是限定仅在队尾进行插入和删除操作的线性表 作用:递归 应用:四则运算表达式求值(后缀表达式)
- 队列
队列是只允许在一端进行插入操作,另一端进行删除操作的线性表5、串
串是由0个或多个字符组成的有限序列,又叫字符串
- KMP匹配算法
- 深度
树中节点的最大层次,称为树的深度或高度
- 表示方法
双亲表示法、孩子表示法、孩子兄弟表示法
- 二叉树
1.每个节点最多有两颗子树,二叉树中不存在度大于2的节点 2.左右字数是有顺序的,不能颠倒 3.只有一颗子树,也要区分是左子树还是右子树 五种基本形态 1.空二叉树 2.只有一个根节点 3.根节点只有左子树 4.根节点只有右子树 5.根节点既有左子树又有右子树
- 特殊二叉树
1.斜树 2.满二叉树(左右节点数量完全相等) 3.完全二叉树(在某一层上,左右节点数量相等)
- 二叉树遍历方法
1.前序 从根节点开始,先左边后右依次遍历 2.中序 从最左边节点开始,先遍历根节点,后遍历右边节点 3.后序 从最左边节点开始,先遍历右边节点,最后遍历根节点 4.层序遍历 从根节点开始,逐层从左到右遍历
-
树的应用
赫夫曼树 带权路径长度WPL最小的二叉树称为赫夫曼树 赫夫曼编码-压缩
图中的一些定义图是由顶点的有穷非空集合的顶点之间边的集合组成,通常表示为: G(V,E), 其中G是一个图,V是图G中顶点的结婚,E是图G中边的集合
-
图中数据元素称为顶点(Vertex)
-
图结构中,不允许没有顶点
-
图中任意两个顶点之间都有可能有关系,顶点之间的逻辑关系用边来表示,边集可以是空的
-
边的定义
无向边 有向边
- 折半查找
- 插值查找
- 斐波那契查找
-
稠密索引
稠密索引是指在线性索引中,将数据集中的每个记录对应一个索引项;例:记事本
-
分块索引
块内无序,块间有序; 参考图书馆、档案馆存放书籍方式
-
倒排索引
索引项通用结构: 次关键码 记录号表
构建思想: 每当插入一个节点时,先检查是否因插入而破坏了树的平衡性,若是,则找出最小不平衡子树。在保持二叉排序树特性的前提下,调整最小不平衡子树各节点之间的链接关系,进行相应旋转,使之成为新的平衡子树多路查找树(B树) 哈希表查找
散列技术最适合的求解问题是查找与给定值相等的记录;但是无法查找最大值、最小值等结果 散列函数的构造方法: 1.直接定址法 2.数字分析法 3.平方取中法 4.折叠法 5.除留余数法 6.随机数法 处理散列冲突的方法: 1.开放定址法 解决冲突的开放定址法称为线性探测法 本来不是同义词却需要争夺同一个地址的情况,称为堆积 为了不让关键字都堆积在一个区域。采用二次探测法/随机探测法 重新计算地址 2.再散列函数法 3.链地址法 4.公共溢出区法9、排序 排序分类
根据在排序过程中待排序的记录是否全部被放置在内存中,排序分为:内排序和外排序 内排序: 内排序是在排序的整个过程中,待排序的所有记录全部都被放置在内存中。 外排序: 由于排序的记录个数太多,不能同时放置在内存,整个排序过程总需要在内外存之间多次交换数据才能进行 内排序性能影响点: 1.时间性能 2.辅助空间 3.算法的复杂性 内排序分为: 插入排序、交换排序、选择排序和归并排序排序类型
- 菜鸟教程-数据结构
冒泡排序、简单选择排序、直接插入排序、希尔排序、堆排序、归并排序、快速排序
- 快速排序!!!
- 随机快排
- 双路快排
- 三路快排
- 没有什么是不可能的,不要被条条框框限制住自己的思维
- 如果你有梦想的话,就要去捍卫它。当别人做不到,他们就想要告诉你,你也不能。如果你想要些什么。就努力去争取。



