Dijkstramatlab算法.docVIP

  • 5
  • 0
  • 约5.53千字
  • 约 8页
  • 2016-11-06 发布于贵州
  • 举报
Dijkstramatlab算法

//Dijkstra算法 ? 时间复杂度 ? O(NV^2) //D[i]为v到i的最短路径长度 //P[i]为此最短路径中i的前趋 //注意: //1。i,j不相邻时E[i][j]应为infinity //2。不使用AV //3。边权不能为负值 void ? Graph::Dijkstra(int ? v,vector int ? D,vector int ? P)const { vector bool ? M ? = ? VM; for(int ? i=0;i NV;i++) { ? ? ? D[i] ? = ? E[v][i]; ? ? P[i] ? = ? v; ? ? } M[v] ? = ? false; ? D[v] ? = ? 0; for(;;) { int ? min,w; min ? = ? infinity; for(int ? j=0;j NV;j++) { if(!M[j])continue; if(D[j] ? min){ ? ? ? min ? = ? D[j]; ? ? w ? = ? j; ? } } if(min ? == ? infinity)break; ? ? ? M[w] ? = ? false; for(int ? j ? = ? 0;j NV;j++) { if(!M[j]

文档评论(0)

1亿VIP精品文档

相关文档