数据结构与算法
文章平均质量分 93
ElonZhou99
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第五、六课:数与图【C++】
文章目录树树的定义树的基本术语树的存储法链式存储法数序存储法二叉树二叉树性质满二叉树完全二叉树二叉树的遍历、操作实现二叉查找树(二叉搜索树)二叉查找树的查找、插入、删除操作二叉查找树的其他操作二叉查找树对比散列表树的直径、最近公共祖先树的变形(基环树)图图的定义图的存储图的操作图的遍历深度优先遍历DFS广度优先遍历BFS实战树树的定义 树是由一个集合以及在该集合上定义的一种关系构成的,集合的元素称为树中的结点,所定义的关系成为父子关系。父子关系在树的结点之间建立了一个层次结构,在这种层次结构中有一个原创 2021-07-25 16:02:18 · 889 阅读 · 0 评论 -
第四课:递归、分治【C++】
递归recursion(实现形式)函数自身调用自身通过函数体来进行循环以相似的方法重复进行的过程例子:def factorial(n): # 要注意边界 if n <= 1: return 1 return n * factorial(n - 1)递归的三个关键定义需要递归的问题(重叠子问题)——数学归纳法确定递归边界保护与还原现场全局变量要还原,局部变量不用分治(算法)把原问题划分为若干个子问题,分别解决后,再把结果合并关键原创 2021-07-25 16:01:18 · 216 阅读 · 0 评论 -
第三课:哈希表、集合、映射【C++】
文章目录1. 哈希表2. 集合与映射实战set、map的使用及其特性和区别1.set2. multiset3.map4.multimap1. 哈希表哈希表(hash table)又称散列表,是一种可以通过“关键码”(key)直接进行访问的数据结构。哈希表由两部分组成一个数据结构,通常是链表、数组hash函数,输入“关键码”(key),返回数据结构的索引对外表心啊喂可以通过关键码直接访问:hash_table[key] = value实际上是在数据结构的hash(key)位置存储了value原创 2021-07-25 16:00:44 · 870 阅读 · 0 评论 -
第二课:前缀和、差分、双指针
文章目录1 前缀和1.2 二维前缀和2. 差分3. 双指针扫描,滑动窗口3.1 双指针扫描4. 单调栈、单调队列5.算法对比实战1 前缀和一维数组A通常将其下标变为1~n,在前面补一个0,防止计算S[r]-S[l-1]时越界nums = [0] + nums;前缀和数组S:s[i]=s[i−1]+A[i]s[i] = s[i-1] + A[i]s[i]=s[i−1]+A[i] // 递归思想子段和——A中第l个数到第r个数的和sum(l,r)=∑i=lrA[i]=S[r]−S原创 2021-07-25 15:59:58 · 639 阅读 · 0 评论 -
第一课:链表、栈、队列
文章目录第一周:链表、栈、队列1. 数组vector可变长动态数组2. 链表3. 栈stack4. 队列queue5. 双端队列deque6. 优先队列priority queue实战第一周:链表、栈、队列1. 数组数组操作时间复杂度:Look up >> O(1)Insert >> O(n)Delete >> O(n)Append (push back) >> O(1)Prepe原创 2021-07-25 15:58:56 · 285 阅读 · 0 评论 -
2021-06-21
目录第一周:链表、栈、队列1. 数组vector可变长动态数组2. 链表3. 栈stack4. 队列queue5. 双端队列deque6. 优先队列priority queue实战第一周:链表、栈、队列1. 数组数组操作时间复杂度: Look up >> O(1) Insert >> O(n) Delete >> O(n) Append (push back) >> O(1)原创 2021-06-21 02:31:33 · 272 阅读 · 0 评论
分享