数据结构与算法
数据结构与算法教程
dabusidede
Github:https://github.com/IceEmblem,
Word文档文章:https://github.com/IceEmblem/LearningDocuments
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一看就懵最不详细的数据结构与算法教程 排序算法
参考文档:https://www.runoob.com/w3cnote/ten-sorting-algorithm.html 各个算法的时间复杂度 冒泡排序 动画演示:https://www.runoob.com/wp-content/uploads/2019/03/bubbleSort.gif 冒泡排序由内外2层循环完成,每一次外出循环都会将最大的数据排到后面,如下是数据的变化情况 // 对如下数组进行排序 [4, 2, 5, 3, 1] // 第1次外层循环 [2, 4, 5, 3, 1] [2,原创 2020-12-27 12:06:14 · 325 阅读 · 0 评论 -
一看就懵最不详细的数据结构与算法教程 查找算法
平均查找长度ASL ASL表示查找一个元素平均需要经过多少次比较,具有n个元素的列表的 ASL = P1C1+ P2C2+ ... + PnCn,Pi为查找第i个元素的概率,Ci为查找到第i个元素需要经过多少次比较 顺序查找 顺序查找就是从第1个元素到第n个元素顺序查找,如果每元素被查找的概率都是相等的,那么其 ASL=(n+1)/2 时间上很多应用都遵循 8/2 规则,即 80% 的访问都集中在 20% 的记录上,所以我们可以改进我们的算法,如下 varlist=['a','...原创 2020-12-27 11:59:03 · 339 阅读 · 0 评论 -
一看就懵最不详细的数据结构与算法教程 图
图形结构属于多对多关系 图的基本概念 图的定义 我们使用 G=(V, E) 表示图G V是顶点集合,如 V = { 1, 2, 5, 8 } E是边集合,如 无向图的E = { (1, 2), (1, 3) },有向图的E = { <1, 2>, <2, 1>, <2, 3> } 如下是无向图 其V={1, 2, 3, 4} 其E={(1, 2), (1, 3), (1, 4), (2, 4)} 如下是有向图 其V={1, 2, 3..原创 2020-12-27 11:45:37 · 676 阅读 · 0 评论 -
一看就懵最不详细的数据结构与算法教程 树
树属于一对多关系 如下的数据结构,我们称为二叉树 二叉树一个节点可以连接到左右2个节点 二叉树 二叉树的遍历 有时候,我们需要遍历二叉树的每一个元素,对这些元素进行操作,遍历的算法依据中间节点的访问顺序分为 前序遍历:访问中节点,访问左节点,访问右节点,简称VLR 中序遍历:访问左,访问中,访问右,简称LVR 后序遍历:访问左,访问右,访问中,简称LRV 如下是C++的一个前序遍历方法 class BinaryTreeNode { public: ... BinaryTreeNode *l原创 2020-12-27 11:31:01 · 304 阅读 · 0 评论 -
一看就懵最不详细的数据结构与算法教程 线性表
参考文档:https://blog.youkuaiyun.com/ityqing/article/details/82838524 线性表的数据属于1对1关系 线性表中的数据是线性排列的,每个数据存在一个前驱和后驱数据(首尾除外),数据连起来就像一条线,称为线性表,如下是线性表的不同存储方式 数组 数据结构 数组是最简单的线性表了,其数据结构如下 数组数据的位置与物理存储位置相同 时间复杂度 试想,当我们在第1个位置插入数据时,我们需要将原先的1到n个数据往后移一位,当我们删除第1...原创 2020-12-27 11:23:10 · 293 阅读 · 0 评论
分享