- 博客(3)
- 收藏
- 关注
原创 分治算法——线性时间寻找数组中第k小数
采用最普通分治算法:O(N^2) Sub:使用一个支点将数组分为两部分;Relate:该支点所在数组的位置,若为k则返回,若大于k则将前半数组作为新的问题,反之将后半数组作为新的问题。Time:对于最好的情况,直接找到k;然而最坏的情况,每次支点都找到当前数组的第一个数,而k为最后一个数,这样的时间复杂度为O(N^2)使用最普通的分治算法甚至不如直接对数组进行排序再寻找第k大的数为了方便讲解,设N%5==0,若不为0可以通过在数组尾部补齐解决。采用改进过的分治算法:O(n...
2022-04-28 10:58:16 710 1
原创 欧拉筛选和欧拉函数
欧拉筛选欧拉筛选通过用数组记录使每个数只被遍历一次故为O(n)。代码如下:#include<iostream>using namespace std;int prime[100005];bool vis[100005];int n, cnt;int main() { cnt = 0; cin >> n; for (int i = 2; i <= n; i++) { if (!vis[i])prime[++cnt] =...
2022-03-31 23:00:51 498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人