编程珠玑第一章位图排序

Posted Liez

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程珠玑第一章位图排序相关的知识,希望对你有一定的参考价值。

记录一下代码。

 

 1 #include<iostream>
 2 using namespace std;
 3 
 4 #define BITSPERWORD 32
 5 #define SHIFT 5
 6 #define MASK 0x1F
 7 #define N 10000000
 8 
 9 int a[1 + N/BITSPERWORD];
10 
11 void set(int i) { a[i >> SHIFT] |= 1 << (i&MASK); }
12 void clr(int i) { a[i >> SHIFT] &= ~(1 << (i&MASK)); }
13 int test(int i) { return a[i >> SHIFT] & (1 << (i&MASK)); }
14 
15 int main(void) {
16     int i;
17     for (i = 0; i < N; i++)        clr(i);
18     while (cin>>i)        set(i);
19     for (i = 0; i < N; i++) {
20         if (test(i))
21             cout << i<<endl;
22     }
23     system("pause");
24     return 0;
25 }

 

以上是关于编程珠玑第一章位图排序的主要内容,如果未能解决你的问题,请参考以下文章

读书笔记《编程珠玑》第一章之位向量&位图

编程珠玑——第一章习题

编程珠玑第一章习题

编程珠玑第一章书后习题解答

编程珠玑第一章习题6.1000个整数排序

Book-编程珠玑-第一章