分治
概念:
分治就是分而治之,将一个大的问题化为小问题,当小的问题解决了,大的问题也就解决了
应用:
归并排序
BFS && DFS
深度优先搜索算法 和 广度优先搜索算法他们主要适用于处理树形数据结构
BFS
广度优先搜索算法处理树形结构数据是一层一层的处理,如下图一样,
实现思路: 循环 + 队列数据结构
function BFS(root) {const res = []let queque = root.slice()while (queque.length) {for (let i = 0, len = queque.length; i < len; i++) {const cur = queque.shift()res.push(cur.id)if (cur.children) {queque = queque.concat(cur.children)}}}console.log(res)}
应用:
102 层序遍历
DFS
深度优先搜索算法实用递归先处理树形结构的最深层,就好像栈一样,后进先出,最深层次的先处理。
实现思路: 递归
