您的位置:首页 > 编程语言

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

2016-09-18 00:10 274 查看
记录一下代码。

#include<iostream>
using namespace std;

#define BITSPERWORD 32
#define SHIFT 5
#define MASK 0x1F
#define N 10000000

int a[1 + N/BITSPERWORD];

void set(int i) { a[i >> SHIFT] |= 1 << (i&MASK); }
void clr(int i) { a[i >> SHIFT] &= ~(1 << (i&MASK)); }
int test(int i) { return a[i >> SHIFT] & (1 << (i&MASK)); }

int main(void) {
int i;
for (i = 0; i < N; i++)        clr(i);
while (cin>>i)        set(i);
for (i = 0; i < N; i++) {
if (test(i))
cout << i<<endl;
}
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: