使用位邏輯運算實現位向量,並實現大資料排序

2021-07-26 16:40:02 字數 515 閱讀 4832

首先,先把這些資料實現位向量:

該例中資料型別為int,且為32位

#define bitsperword 32

#define shift 5

#define mask 0x1f

#define n 10000000

int a[1+n/bitsperwoed];

把其對應位置0: 

void clr(int i)

把其對應位置1: 

void set(int i)

查詢對應位是否為1:

int test(i)

然後將其運用到大資料的排序中,現將資料置於點陣圖中,然後遍歷列印,如果有重複資料則需要再用乙個陣列進行標記,列印時候考慮重複

1,for(i=0,n)

if(!test(i))

set(i)

2,for(t = 0, n)

if(test(t))

printf();

具體實現**可以參考其他人的**

邏輯運算 位運算

今天有人問我,邏輯運算是什麼,現在來解釋一下 邏輯運算就是相當於資訊競賽基礎工具中的一位的位運算 符號對應關係 wedge cap 交 and 與運算 vee cup 並 or 或運算 neg not 非 xor 異或運算 x k 將x的二進位制右移k位 如 x 10110 2 時,k 1,那麼x ...

邏輯位運算與邏輯運算

兩者非常容易混淆,其實這是截然不同的兩種運算.1.邏輯位運算 與運算 1 2 0 0000 0001 0000 0010 0000 0000 0 或運算 1 2 3 0000 0001 0000 0010 0000 0011 3 按位求反 運算,異或 運算略.移位 左移,右移 運算略.2.邏輯運算 ...

C 邏輯運算 位運算

c gossip 邏輯運算 位運算 一 邏輯運算 在邏輯上有所謂的 且 或 與 反 運算,在c 中也提供這幾個基本邏輯運算所需的 邏輯運算子 logical operator 分別為 且 或 及 反相 三個運算子。來看看下面這個程式會輸出什麼?int num 75 cout num 70 num 8...