排序
堆排序
https://www.cnblogs.com/chengxiao/p/6129630.html
桶排序
https://zhuanlan.zhihu.com/p/92800422
https://www.cnblogs.com/bqwzx/p/11029264.html (这个博客里面介绍的也挺仔细的,主要是算法思想)
快速排序
随机化快速排序
https://www.cnblogs.com/zhoutaotao/p/3970099.html
插入排序
https://www.runoob.com/w3cnote/insertion-sort.html
从前往后依次遍历,如果小于则进行插入。
堆与优先级队列
https://blog.csdn.net/qq_35371031/article/details/99683782
树
二叉树
遍历二叉树访问结点的时间复杂度为 O ( n ) O(n) O(n)
二叉搜索树
所有左结点小于对应的根结点,所有右结点大于根结点
完全二叉树
https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91/7773232?fr=aladdin(百度百科的定义)
遍历
https://blog.csdn.net/qq_34840129/article/details/80619761
二叉树中序遍历
中序遍历放中间
def _inorder(self, root):
if not root:
return
self._inorder(root.left)
self.nodes_sorted.append(root.val)
self._inorder(root.right)
红黑树,AVL树,BST树
红黑树的应用比较广泛,主要是用它来存储有序的数据,AVL树有别于AVL算法,但是它叫做二叉平衡树,也即AVL树。 AVL树的名字来源于它的发明作者G.M.Adelson-Velsky 和 E.M.Landis。
https://www.cnblogs.com/skywang12345/p/3245399.html
什么时候适用于红黑树,什么时候适用于AVL树,什么时候适用于BST树
https://blog.csdn.net/zhangting19921121/article/details/104673519?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242
摩尔投票法
https://leetcode-cn.com/problems/majority-element-ii/solution/liang-fu-dong-hua-yan-shi-mo-er-tou-piao-fa-zui-zh/
线性时间复杂度和常量空间。
单调栈
https://leetcode-cn.com/problems/largest-rectangle-in-histogram/solution/bao-li-jie-fa-zhan-by-liweiwei1419/ (这个里面有很多单调栈的题目)