该资源是关于算法设计的,是文档,但是有附加了代码。
2021-11-06 12:13:43 16KB 众数
1
二维空间的最接近点对问题 下面来考虑二维的情形。 选取一垂直线l:x=m来作为分割直线。其中m为S中各点x坐标的中位数。由此将S分割为S1和S2。 递归地在S1和S2上找出其最小距离d1和d2,并设d=min{d1,d2},S中的最接近点对或者是d,或者是某个{p,q},其中p∈P1且q∈P2 ,如图2-9所示。 能否在线性时间内找到p,q? 考虑P1中任意一点p,它若与P2中的点q构成最接近点对的候选者,则必有distance(p,q)<d。满足这个条件的P2中的点一定落在一个d×2d的矩形R中,如图2-10所示。 由d的意义可知,P2中任何2个S中的点的距离都不小于d。由此可以推出矩形R中最多只有6个S中的点。 图2-9距离直线l小于d的所有点 图2-10包含q的d×2d矩形R
2021-11-05 10:39:25 1.69MB 递归算法 分治策略
1
对随机生成的由n个自然数组成的多重集合S,应用分治法编程计算S的众数及其重数。
2021-11-04 23:36:39 267KB c++ 分治法 众数
1
算法设计与分析课内实验——分治法求众数。文档很齐全,包括算法分析过程和源代码(java语言eclipse环境)
2021-11-04 23:18:22 205KB 分治算法 java
1
C++语言 .CPP文件 可直接运行
2021-11-03 14:40:15 1KB 分治法 格雷码
1
五大常用算法-动态规划,分治,递归,贪心,回溯
2021-11-03 02:01:45 62KB 算法
1
课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
2021-10-31 11:24:14 2KB C语言
1
C语言分治算法求解30枚银币中的某枚假币,简单而言,30枚银币中有1枚假币,该假币的重量比其他29枚银币的重量小1,先将30枚银币平分成两部分,各15枚,分别称重,重量小的那一半银币中必然包含假币,然后再分成两部分,依次类推,直至最后剩下两枚银币,称重后重量小的那一枚即为假币。
2021-10-30 13:04:04 44KB C语言 分治算法 求解假银币问题
1
【问题描述】每次都是优化选出一个元素(分组后的中位数)为划分基准,在线性时间内寻找第i小元素。提示:分组时的组的个数为n/5的向下取整;分组后的中位数取第(num_group/2向上取整)小的元素。 【输入形式】在屏幕上输入若干整数,各数间都以一个空格分隔。再输入要寻找的元素是数组从小到大顺序中第几个位置。 【输出形式】第一次划分基准元素,和数组从小到大顺序中要寻找的那个位置的元素。 【样例1输入】 2 9 8 0 7 10 1 12 3 14 5 13 6 11 4 3 【样例1输出】 7 2 【样例1说明】 输入:15个整数,以空格分隔。要寻找第3小元素。 输出:7表示第一划分基准元素为7,2表示第3小元素为2。
2021-10-28 22:31:30 871B python
1
线性时间选择 给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素 template Type RandomizedSelect(Type a[],int p,int r,int k) { if (p==r) return a[p]; int i=RandomizedPartition(a,p,r), j=i-p+1; if (k<=j) return RandomizedSelect(a,p,i,k); else return RandomizedSelect(a,i+1,r,k-j); } 在最坏情况下,算法randomizedSelect需要O(n2)计算时间但可以证明,算法randomizedSelect可以在O(n)平均时间内找出n个输入元素中的第k小元素。
2021-10-28 21:15:41 813KB 分治法
1