第一次结对作业-今日共同报告-04-算法逻辑的探讨和研究
今天的合作任务:烁玚和我探讨了算法逻辑的实现,我们写了一部分算法逻辑的测试代码,
锁群负责编写,我负责测试是否正常实现。
今天的合作照:
今天的进度报告:
今天主要讨论了算法逻辑。
今天我们集中于最短路径算法要如何实现:目前看来有几种算法可以选择-一般来说是用迪杰斯特拉算法。深度优先和广度优先算法都是可行的,
同时也可以直接在数据层面使用SQL语句递归实现。
迪杰斯特拉算法示例代码:
public class dijstl { public static void main(String[] args){ int u = 0; int minx; int dst[] = {}; int edge[][] = {}; int book[]={}; int inf = 0; int n = 0; for(int i=1;i<=n;i++) { dst[i]=edge[1][i]; } for(int i=1;i<=n;i++) { book[i]=0;//初始化 } book[1]=1; for(int i=1;i<=n-1;i++){ minx=inf; for(int j=1;j<=n;j++){ if(book[j]==0&&dst[j]<minx){ minx=dst[j]; u=j; } } book[u]=1; /***更新最短路径***/ for(int k=1;k<=n;k++){ if(book[k]==0&&dst[k]>dst[u]+edge[u][k]&&edge[u][k]<inf){ dst[k]=dst[u]+edge[u][k]; } } } } }