分治

概念:
分治就是分而治之,将一个大的问题化为小问题,当小的问题解决了,大的问题也就解决了

应用:
归并排序

BFS && DFS

深度优先搜索算法 和 广度优先搜索算法他们主要适用于处理树形数据结构

BFS

广度优先搜索算法处理树形结构数据是一层一层的处理,如下图一样,
实现思路: 循环 + 队列数据结构
image.png

  1. function BFS(root) {
  2. const res = []
  3. let queque = root.slice()
  4. while (queque.length) {
  5. for (let i = 0, len = queque.length; i < len; i++) {
  6. const cur = queque.shift()
  7. res.push(cur.id)
  8. if (cur.children) {
  9. queque = queque.concat(cur.children)
  10. }
  11. }
  12. }
  13. console.log(res)
  14. }

应用:
102 层序遍历

DFS

深度优先搜索算法实用递归先处理树形结构的最深层,就好像栈一样,后进先出,最深层次的先处理。

实现思路: 递归