1:将一个集合分为两部分,一个是已经找过的结点U,一个是没有找到过的v
2:在距离的数组中,没有访问过的结点中找一个权重最小的边,然后将这个结点添加到u中,并且以这个结点作为中间结点,来更新数组,判断条件是i到temp+temp到j 的距离是不是小于i到j的距离,若是,则就要更新。
3:直到u中的结点的个数=图中的结点的个数
算法的实现其实还是比较简单,和prim算法图的prim算法没什么差别,都是维护一个距离数组,来更新数组,不同的是只是添加一个判断条件而已。,在这里就没什么可说的,不懂的分析程序,运行结果一两遍就基本明白了
public void expandCapacity()
{
T[] larger = (T[])(new Object[queue.length*2]);
for (int index=0; index < count; index++)
larger[index] = queue[(front+index) % queue.length];
front = 0;
rear = count;
queue = larger;
}
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 138/138 | 2/2 | 25/25 | 学会写和上传代码,会编简单的输出程序 |
第二周 | 88/226 | 1/3 | 30/55 | 起文件名不能太长 |
第三周 | 898/1124 | 2/5 | 35/90 | Java类里面的方法和C语言的函数很像 |
第四周 | 632/1756 | 2/7 | 30/120 | 可以用继承extends简化重复的代码 |
第五周 | 770/2526 | 2/9 | 45/165 | --amend -m可以重命名没push的文件 |
第六周 | 3947/6473 | 2/11 | 40/205 | 接口类的功能要分散,利用多继承完成功能 |
第七周 | 1359/7832 | 3/14 | 35/240 | |
第八周 | 273/8105 | 1/15 | 15/255 | 查找前先排序更好 |
第九周 | 873/8978 | 2/17 | 50/305 | |
第十周 | 744/9722 | 3/20 | 45/350 |
20182309 2019-2020-1 《数据结构与面向对象程序设计》第10周学习总结
原文:https://www.cnblogs.com/blueflameashe/p/11964276.html