第一个是那个求小于n的所有素数最简单的算法:
第二个是完美洗牌的算法,输入
,如何用
的时间,
的空间,将这个序列顺序改为
。
bool* prime(int n) {要想做一些优化的话,可以把外循环控制到sqrt(n)。
bool *p = new bool[n];
memset(p, 0, sizeof p);
for (int i = 2; i < n; i++) {
if (!p[i]) {
for (int j = 2*i; j < n; j+=i) {
p[j] = true;
}
}
}
return p;
}
第二个是完美洗牌的算法,输入
,如何用
的时间,
的空间,将这个序列顺序改为
。mergeSort(x[1...2n]); // if this function solve Merge Sort problem
perfectShuffle(x[1...2n]) { // then this solve Perfect Shuffle problem
m = max(x[1...2n])+1;
x[i] = x[i]+(2i-1)m;
x[i+n] = x[i+n] + 2im;
mergeSort(x[1...2n]);
x[i] = x[i]%m;
}
本文介绍了一种简单的素数筛选算法,用于找出小于n的所有素数,并提出了一种优化方案。此外,还详细讲解了完美洗牌算法,通过使用归并排序实现了序列的重新排列。
323

被折叠的 条评论
为什么被折叠?



