我本来不想做这么蛋疼的事情的,可是更蛋疼的是我看了王大神的博客然后中毒了!我发誓再!不!看!了!
不过问题本身还是有一点意思的,正好学过图论没有实现过dijkstra,刚好在慕课上又学了一点pl/sql。然后就这样一个题目做了一晚上然后还是不想睡觉,赶紧写点代码来压压惊。 图片出自http://blog.jobbole.com/70639/ 《真正统治世界的十大算法》 顶点可以忽略,对于有权有向边,一般必须的属性:起点、终点、距离,最后表建出来就是这样 create table EDGE 对于dijkstra算法来说是计算结果是从源点到其他顶点的最短距离以及最短路径,这个好像没办法用变量保存 create global temporary table DISTANCE -- Created on 2015/7/21 by cbwleft 最后在事务提交前执行查询,路径好像最后还得用递归统计一次。
比如说查询x到源点的最短路径
SELECT wm_concat(destination) FROM distance START WITH destination = 'x' CONNECT BY destination = PRIOR previous 结果是x,t,y,s |
相关文章
- 01-22ASP.NET(C#) 使用 SqlBulkCopy 实现批量插入SQL(快捷简单)
- 01-22jpa使用jpql 原生sql 方法命名规则 实现多表联查和分页
- 01-22sql 实现学生成绩并列排名算法
- 01-22如何实现LRU(最近最少使用)缓存淘汰算法?
- 01-22【SQL】面面俱到 | 在SQL中使用CUBE和ROLLUP实现数据多维汇总
- 01-22使用正则表达式实现像SQL中LIKE语句中的%和_通配
- 01-22使用flex和bison实现的sql引擎解析
- 01-22sql语句实现分页与使用Take和Skip实现分页
- 01-22使用Druid解析SQL实现血缘关系计算
- 01-22flink 使用sql实现kafka生产者和消费者