1 并发执行顺序
std::thread t2(f1, n + 1); //t2 is a thread,pass by value
从创建线程开始
join()说白了就是阻塞,主线程等待当前子线程执行完毕再执行。
如果没有join(),多个线程并发执行的顺序是由CPU决定的。
2 Web Server
3 无向有权图
Floyd-Warshall算法
Floyd算法又称插点法,其中算法的核心思想是动态规划。
算法步骤:
通过已知条件初始化距离矩阵D[n][n],其中D[i][j]表示,顶点i到顶点j的距离。
n个顶点依次作为插入点,例如,k为其中一个顶点,D[i][k] + D[k][j] < D[i][j],那说明顶点i经过顶点k再到达j,比直接到达j要近。所以更新D[i][j]:D[i][j] = D[i][k] + D[k][j]。
可以归纳得到状态转移方程:D[i][j] = min(D[i,k]+D[k,j],D[i,j]);
leetcodeEP1334 ,无向有权图转化为求任意两点间的最短路径。