摘要: 1. 问题 在一个排好序的数组T[1..n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0. 2. 解析 遍历数组 二分数组 3. 设计 遍历数组的算法,就是一个个按顺序查询 二分算法:判断一个搜索集,每次判断搜索集的中间,减去一半区间 4. 分析 遍历算法:O(n) 二分算 阅读全文
posted @ 2020-03-24 13:40 Tinker1998 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 1.问题 什么是最短路算法 是实现图上最短路的算法,常见的有Dijkstra算法,Floyd算法。 2.解析 Dijkstra算法 如图红线这条路径可以被蓝线所优化,这就是松弛操作 Floyd算法 如图红线这些路径也可以被蓝线所优化。 3. 设计 Dijstra算法 初始时,S只包含起点s;U包含除 阅读全文
posted @ 2020-03-10 22:00 Tinker1998 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 最小生成树算法:Kruskal算法rime算法的分析 题目来源:https://vjudge.net/problem/HDU-1863 问题 什么是最小生成树(MST) 1.边的权重和最小 2.|V|个顶点一定有|V|-1条边,并构成连通图 解析 Kruskal prime 设计 Kruskal:核 阅读全文
posted @ 2020-02-26 13:21 Tinker1998 阅读(152) 评论(0) 推荐(0) 编辑
摘要: A题 题目大意:给出一个1~n的排列,现在要求选择一个合适的分割点,将整个排列分为两个部分,要求通过适当的移动使得前半部分的所有数值都小于后半部分的数值,现在给出移动每个数字所花费的代价,输出最小代价 这题显然对于左集合若最后的个数为k,那值必定为1-k,右集合值为k+1-n;所以最朴素的方法就是枚 阅读全文
posted @ 2020-02-05 11:34 Tinker1998 阅读(149) 评论(0) 推荐(0) 编辑