数据结构与算法
数据结构与算法教程
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 · 256 阅读 · 0 评论 -
一看就懵最不详细的数据结构与算法教程 查找算法
平均查找长度ASLASL表示查找一个元素平均需要经过多少次比较,具有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 · 279 阅读 · 0 评论 -
一看就懵最不详细的数据结构与算法教程 图
图形结构属于多对多关系图的基本概念图的定义我们使用 G=(V, E) 表示图GV是顶点集合,如 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 · 600 阅读 · 0 评论 -
一看就懵最不详细的数据结构与算法教程 树
树属于一对多关系如下的数据结构,我们称为二叉树二叉树一个节点可以连接到左右2个节点二叉树二叉树的遍历有时候,我们需要遍历二叉树的每一个元素,对这些元素进行操作,遍历的算法依据中间节点的访问顺序分为前序遍历:访问中节点,访问左节点,访问右节点,简称VLR中序遍历:访问左,访问中,访问右,简称LVR后序遍历:访问左,访问右,访问中,简称LRV如下是C++的一个前序遍历方法class BinaryTreeNode{public: ... BinaryTreeNode *l原创 2020-12-27 11:31:01 · 241 阅读 · 0 评论 -
一看就懵最不详细的数据结构与算法教程 线性表
参考文档:https://blog.csdn.net/ityqing/article/details/82838524线性表的数据属于1对1关系线性表中的数据是线性排列的,每个数据存在一个前驱和后驱数据(首尾除外),数据连起来就像一条线,称为线性表,如下是线性表的不同存储方式数组数据结构数组是最简单的线性表了,其数据结构如下数组数据的位置与物理存储位置相同时间复杂度试想,当我们在第1个位置插入数据时,我们需要将原先的1到n个数据往后移一位,当我们删除第1...原创 2020-12-27 11:23:10 · 225 阅读 · 0 评论