分治思想-终篇

  1. 先写一个笨算法,然后找冗余消除
  2. 正难则反,大难则小
  3. 如果问题没有任何结构,则引入结构
  4. 采样
  5. 固定值变成可调变量
  6. 手动/计算机执行,观察规律
  7. 子树不一定用儿子,还可以用孙子

分治思想在数组上的运用,总的来说可以归纳为两种:

  • 根据下标划分:归并
    划分稳定,保证每次都能使得数据规模指数级下降,达到降维的目的,但依赖更多的空间,在大数据情况下开销较大
  • 根据数值划分:快排、选择
    划分不稳定,依赖于piviot的选择合适与否,但大部分情况下都能做到数据规模指数级下降,且不依赖多余空间,应用要更为广泛

你可能感兴趣的:(算法学习,算法)