- 先写一个笨算法,然后找冗余消除
- 正难则反,大难则小
- 如果问题没有任何结构,则引入结构
- 采样
- 固定值变成可调变量
- 手动/计算机执行,观察规律
- 子树不一定用儿子,还可以用孙子
- 根据下标划分:归并
划分稳定,保证每次都能使得数据规模指数级下降,达到降维的目的,但依赖更多的空间,在大数据情况下开销较大 - 根据数值划分:快排、选择
划分不稳定,依赖于piviot的选择合适与否,但大部分情况下都能做到数据规模指数级下降,且不依赖多余空间,应用要更为广泛
推荐阅读
- C语言学习教程|C语言指针进阶-全面分析C指针重难点逐一突破(终篇)
- MAT00027I
- 机器学习|VAE变分自编码器
- 竞赛|高级数据结构(树状数组以及逆序对求解)
- 剑指offer|剑指 Offer第 11 天 双指针(简单)
- LeetCode|LeetCode 467. 环绕字符串中唯一的子字符串 -- 动态规划
- C++|蓝桥杯算法提高欧拉函数--复杂度为O(n log n)
- LeetCode编程题解法汇总|力扣解法汇总2044-正则表达式匹配
- leetcode|剑指Offer-40-最小的k个数--topk问题java解法整理