![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
实验
Sun——
这个作者很懒,什么都没留下…
展开
-
算法设计实验一(分治与递归) 题目二 :寻找第k小的数 (TOP-k 问题)
参考于:zhi hu 链接 最直接的方法就是直接排序,但是我们仅仅需要第k小的数,并不需要知道每个数在整个数组的相对位置,因此排序O(N*logN)的时间复杂度对这个问题来说就略显奢侈了。 学了O(n)的方法后,发现这种方法有个名字,叫BFPRT算法。参考了上面链接关.原创 2021-10-21 09:48:45 · 1794 阅读 · 1 评论 -
算法设计实验一(分治与递归) 题目四 :金块问题
老板有一袋金块(共n块,n是2的幂(n≥2)),最优秀的雇员得到其中最重的一块,最差的雇员得到其中最轻的一块。假设有一台比较重量的仪器,希望用最少的比较次数找出最重和最轻的金块。并对自己的程序进行复杂性分析。折半。分治,递归。分别找最小值和最大值。仅供参考#include<bits/stdc++.h>#define ll long long#define db doubleusing namespace std;const原创 2021-10-20 14:37:09 · 1518 阅读 · 0 评论 -
算法设计实验一(分治与递归) 题目三 :二分搜索
设a[0:n-1]是一个已排好序的数组。请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素的位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。并对自己的程序进行复杂性分析。 二分找到大于等于的 L 的位置,最后,如果L的位置的数字等于下x,直接输出一个L位置的数(x).否则,输出L-1位置和L位置的数(数组中原创 2021-10-19 21:31:27 · 805 阅读 · 0 评论