IT技术网www.itjs.cn

当前位置:首页 > 数据库 > SQl Server > SQL与最短路径算法(1)

SQL与最短路径算法(1)

发布时间:2015-11-25 00:00 来源:未知

题目:空间有若干个点,每个点之间的联系都是随机的,现求任意一个点(设为A)到另一任意点(设为Z)之间间隔最少其他点的最佳算法(可用SQL数据库)

约束:在一个点中只可以直接找出和它有直接联系的点

用途:通过朋友列表以最快的速度认识一个认识的人(MM/GG)

比如5的好友列表中有1,30,3

7的好友列表中有9,5,8

10的好友列表中有7,21,30

11的好友列表中有7,5,30

21的好友列表中有7,30,66

30的好友列表中有21,88,99

假如5要和7交朋友,则可通过5-11-7。而5-30-21-7是较长的路径。

各位大虾有什么绝招能在SQL里实现这算法

--假如全部建立双向关联,可以试试看下面的语句

declare @t table

/*

5的列表中没有7,是不是可以认为5不认识7,那么5也不认识11,谈何5-11-7是最短路径?

--按照你说的逻辑,步骤如下

--1.建立查询函数

题目:空间有若干个点,每个点之间的联系都是随机的,现求任意一个点(设为A)到另一任意点(设为Z)之间间隔最少其他点的最佳算法(可用SQL数据库)

约束:在一个点中只可以直接找出和它有直接联系的点

用途:通过朋友列表以最快的速度认识一个认识的人(MM/GG)

比如5的好友列表中有1,30,3

7的好友列表中有9,5,8

10的好友列表中有7,21,30

11的好友列表中有7,5,30

21的好友列表中有7,30,66

30的好友列表中有21,88,99

假如5要和7交朋友,则可通过5-11-7。而5-30-21-7是较长的路径。

各位大虾有什么绝招能在SQL里实现这算法

--假如全部建立双向关联,可以试试看下面的语句

declare @t table

/*

5的列表中没有7,是不是可以认为5不认识7,那么5也不认识11,谈何5-11-7是最短路径?

--按照你说的逻辑,步骤如下

--1.建立查询函数