03 2020 档案
摘要:1. 问题 在包含有n个点的集合S中,找出距离最近的两个点。设 p1(x1,y1),p2(x2,y2),……,pn(xn,yn)是平面的n个点。 严格地将,最近点对可能不止一对,此例输出一对即可。 2. 解析 我们先根据x坐标排序,进行递归算出每一部分的距离,在根据y坐标排序计算每一部分之间的最近距
阅读全文
摘要:1. 问题 对n个不同的数构成的数组A[1..n]进行排序,其中n=2^k; 2. 解析 3. 设计 (1) 将待排序序列从中间一分为二,对左右两边再进行递归分割操作,得到n个相互独立的子序列; (2) 对n个独立的子序列递归的执行合并操作,最终得到有序的序列 4. 分析 将k=logn和W(1)=
阅读全文
摘要:1. 问题 在一个排好序的数组T[1..n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0. 2. 解析 遍历数组 二分数组 3. 设计 遍历数组的算法,就是一个个按顺序查询 二分算法:判断一个搜索集,每次判断搜索集的中间,减去一半区间 4. 分析 遍历算法:O(n) 二分算
阅读全文
摘要:1.问题 什么是最短路算法 是实现图上最短路的算法,常见的有Dijkstra算法,Floyd算法。 2.解析 Dijkstra算法 如图红线这条路径可以被蓝线所优化,这就是松弛操作 Floyd算法 如图红线这些路径也可以被蓝线所优化。 3. 设计 Dijstra算法 初始时,S只包含起点s;U包含除
阅读全文