JS实现广度优先搜索得到两点间最短路径
来源:互联网 发布:淘宝皮草外套新款 编辑:程序博客网 时间:2024/06/06 01:09
广度优先搜索
适用范围: 无权重的图,与深度优先搜索相比,深度优先搜索法占内存少但速度较慢,广度优先搜索算法占内存多但速度较快
复杂度: 时间复杂度为O(V+E),V为顶点数,E为边数
图片如下所示:
代码:
const map = [ [0, 1, 1, 0, 1], [1, 0, 0, 1, 0], [1, 0, 0, 0, 1], [0, 1, 0, 0, 0], [1, 0, 1, 0, 0]]function bfs(map, start, end){ let queue = [], vertex_num = map.length, //节点数 count = 0, //迭代次数 unvisited = [], //保存还未访问过的节点 step_dict = []; //记录步长 //init for(let i=0; i<vertex_num; i++){ unvisited[i] = true step_dict[i] = 0 } queue.push(start) while(queue.length){ let flag = false //若遇到孤立节点,则跳过而不加count let cur = queue.shift() step_dict[cur]++ unvisited[cur] = false for(let i=0; i<vertex_num; i++){ if(map[cur][i] === 1 && unvisited[i] === true){ queue.push(i) unvisited[i] = false step_dict[i] = count flag = true } } if(flag){ count++ } } return step_dict[end]}//测试console.log(bfs(map,3,4))
output
3
阅读全文
0 0
- JS实现广度优先搜索得到两点间最短路径
- JS实现深度优先搜索得到两点间最短路径
- Python广度优先搜索得到两点间最短路径
- 广度优先搜索迷宫路径算法的实现
- 广度优先搜索--搜索路径问题
- 广度优先搜索的实现
- 广度优先搜索,队列实现
- 广度优先搜索的实现
- 深度优先搜索,两点间所有路径
- 无权最短路径-广度优先搜索
- 最短路径算法-广度优先搜索
- 无权最短路径-广度优先搜索
- 广度优先搜索(BFS)+路径打印
- 广度优先搜索 最短路径 队列
- 广度优先搜索之最短路径
- 利用广度优先搜索求最短路径
- 无权最短路径 广度优先搜索
- 迷宫:广度优先搜索求最短路径
- 测试中遇到不可重现的错误,如何解决?
- ansible的playbook模式应用
- yFiles for.net 常见问题
- 【1701H1】【穆晨】【171205】连续第五十六天总结
- 目标检测之三 Win10 +VS2015+双gtx Titan X使用YOLO v2训练VOC数据
- JS实现广度优先搜索得到两点间最短路径
- 219. Contains Duplicate II 包含重复元素2
- 统计数据库中某一天的最高记录
- SpringMVC解决中文字符集乱码问题。
- 后端组作业一(12.12截止)
- Markdown中使用特殊符号(特别是HTML)
- CentOS关机大法之Linux运行级别
- extern关键字
- sizeof与strlen的区别