Please enable JavaScript.
Coggle requires JavaScript to display documents.
漫画算法:小灰的算法之旅 - Coggle Diagram
漫画算法:小灰的算法之旅
排序算法
-
冒泡排序
Compare adjacent elements, if an element > its right neighbor, swap positions; otherwise no change O(n^2)
-
方法
逻辑1:相邻元素的两两比较。比如第一个数和第二个数比较,如果第一个数更大,它们就交换位置。然后新的第二个数继续和第三个数比较,如果它更大,又交换位置。通过这种方式,最大的数会像气泡一样一路"冒"到最顶端。接下来重复相同的步骤,去找次大的数,让它"冒"到倒数第二的位置。然后是第三大的数……依次类推,直到整个数组排序完成。核心思想:每一轮都把当前未排序部分的最大值"冒泡"到正确位置。
-
-
-
-
-
数据结构
-
-
组成方式
线性结构
-
哈希表 ≈O(1)
-
操作
-
get读
算Index,去那个位置找,顺着链表比对Key,找到就返回Value
-
树
-
逻辑结构
二叉树 O(logn)
-
-
-
应用
-
-
遍历
深度优先遍历
前序遍历(先自己,再左右)根 → 左 → 右
- 1 more item...
中序遍历(左自己右)左 → 根 → 右
- 1 more item...
后序遍历(左右后自己)左 → 右 → 根
- 1 more item...
-
-
-
算法
衡量算法好坏
时间复杂度-大多数更重要
1
T(n) = 3n
-
-
-
空间复杂度
eg.双重循环:挨个盘问: O(n²)
3号,你后面有人和你票号一样吗?
1号,你后面有人和你票号一样吗?...
VS字典/哈希表:O(n)
3号进 → 本子记: "3号✓"
1号进 → 本子记: "1号✓"
2号又来 → 翻本子: "2号已经进过了!"
情形
-
线性空间 O(n)需要n个格子(数组/列表)
students = ["小明", "小红", "小刚"]
-
-