首页 > 代码库 > 【编程珠玑】第一章位图排序

【编程珠玑】第一章位图排序

记录一下代码。

 

 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 }

 

【编程珠玑】第一章位图排序