1、bitmap类
博客:BitMap类数据结构
参考博客:BitMap类数据结构
关键代码摘录:
void set(int k) { expand(k); M[k >> 3] |= (0x80 >> (k & 0x07)); }
bool test(int k) { expand(k); return M[k >> 3] & (0x80 >> (k & 0x07)); }
2、欧拉筛法(埃氏筛法改进版本)
博客:
欧拉筛法代码
欧拉筛法原理理解
ps. 埃氏筛法准确的时间复杂度应该是O(n*loglogn)
3、指数查找:
讲解:P50 2-21
代码:
int exponentialSearch(int* array, int n, int key)
{
if (array[0] == key)
return 0;
if (array[1] == key)
return 1;
for (long long k = 2; k < n; k *= k)
{
if (array[min(k * k, long long(n - 1))] >= key)
return k;
}
}
复杂度:O(loglogn)
…待补充