最接近点对问题 给定平面上n个点的集合S,找其中的一对点,使得在n个点组成的所有点对中,该点对间的距离最小。 为了使问题易于理解和分析,先来考虑一维的情形。此时,S中的n个点退化为x轴上的n个实数 x1,x2,…,xn。最接近点对即为这n个实数中相差最小的2个实数。 假设我们用x轴上某个点m将S划分为2个子集S1和S2 ,基于平衡子问题的思想,用S中各点坐标的中位数来作分割点。 递归地在S1和S2上找出其最接近点对{p1,p2}和{q1,q2},并设d=min{|p1-p2|,|q1-q2|},S中的最接近点对或者是{p1,p2},或者是{q1,q2},或者是某个{p3,q3},其中p3∈S1且q3∈S2。 能否在线性时间内找到p3,q3?
2021-10-13 13:58:19 791KB 算法 递归 分治
1
(1)利用分治算法,编程实现循环赛日程表安排问题,并进行时间复杂性分析; (注:想最后成绩比较高的同学必须做:当N2k 的情况,有能力的同学也可做) (2)利用分治算法、蛮力法,编程实现最近点对问题,并进行时间复杂性分析。注:要求针对计算机随机生成的100点对数据,分别用蛮力法和分治法求解最近点对,对比其复杂性。
题目描述 给定含有n 个元素的多重集合S,每个元素在S 中出现的次数称为该元素的重数。多重 集S 中重数最大的元素称为众数。 例如,S={1,2,2,2,3,5}。 多重集S 的众数是2,其重数为3。 编程任务: 对于给定的由n 个自然数组成的多重集S,编程计算S 的众数及其重数。 输入格式 输入的第1 行多重集S 中元素个数n;接下来的n 行中,每行有一个自然数。 输出 程序运行结束时,将计算结果输出。 输出有2 行,第1 行给出众数,第2 行是重数。 样例输入 6 1 2 2 2 3 5 样例输出 2 3
2019-12-21 21:24:47 806B 递归与分治 众数问题
1