給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中
位圖思想解法:
#include "stdio.h"
#include "stdlib.h"
#include "memory.h"
#define max_num (4294967295)
int main(void)
; unsigned int testnum1 = max_num;
int i = 0;
unsigned char *mapmem = (unsigned char *)malloc((max_num)*sizeof(unsigned char)/8 +1);
memset(mapmem,'\0',((max_num)*sizeof(unsigned char)/8 +1));
for (i = 0; i<4; i++)
//test
if (mapmem[testnum1/8] & (1 << (testnum1%8)))
else
free(mapmem);
}
大資料量處理
看看這個,異曲同工,永遠不超時 該程式是針對非常龐大的資料庫開發的,沒有用迴圈 用途 對過萬條資料的資料庫字段內容批量替換 資料庫連線 dim beeyee dbname,connstr,conn,intsn1 dim content,num,intsn,intidno,strcodea,strco...
大資料量下排序演算法小結
堆排序和快速排序的比較 堆排序是接近nlgn的下界,而快排有效能壞的情況,為何還是快排表現更優秀呢?1.堆排序是處理陣列中相隔較遠的資料,快速排序是根據兩個 指標按序遍歷的,根據暫存器 快取記憶體的熱cache 區域性性原理,快排更好 2.快排的極端情況太難復現,而且可以 用隨機基準數 3.快排還有...
排序演算法大資料量測試結果
2014 01 06 14 53 06 mergesorter排序40000個數1次所用平均時間為 19.0011 毫秒 2014 01 06 14 53 06 mergesorter排序60000個數1次所用平均時間為 26.0015 毫秒 2014 01 06 14 53 06 mergesor...