锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 澶ф剰灝辨槸鍦ㄧ粰瀹氬唴瀛?.25M浠ュ唴錛岀粰鏈澶氬寘鍚玭涓鏁存暟鐨勬枃浠舵暟鎹帓搴忕殑闂錛宯=10^7 1. 棣栧厛鏄敓鎴愪竴涓鏂囦歡鐨勯棶棰橈紝綾諱技浜庢礂鐗岀畻娉曞緱鍒頒竴緇勯殢鏈轟笉閲嶅鐨勬暟瀛椼?/p> 浠g爜閲孨鍗充負鏁板瓧鍙兘鐨勬渶澶у鹼紝k涓虹敓鎴愮殑涓暟銆備負浜嗘柟渚胯〃紺虹粨鏋滐紝N=100錛宬=10錛?/p>
鐢熸垚鐨刣ata鏁版嵁錛?/p>
79 2. 鎺ヤ笅鏉ュ氨鏄綅鍥捐〃紺哄茍鎺掑簭銆?/p> 娉ㄦ剰N錛宬涓庡墠涓涓涓鑷淬?/p>
sortData鍐呭錛?/p>
3/*
* =====================================================================================
* Filename: creatDataFile.c
* Description: create random digital repeatable data
* Created: 03/17/2012 01:11:38 AM
* Compiler: gcc
*
* Author: zhy (), izualzhy@163.com
* Company:
* =====================================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100/*00000*/
#define k 10/*00000*/
int main()
{
unsigned int i = 0;
srand(time(NULL));
unsigned int *array = (unsigned int*)malloc(sizeof(unsigned int)*N);
for ( i=0; i<N; ++i)
array[i] = i;
for ( i=0; i<k; ++i) {
unsigned temp = array[i];
unsigned randomIndex = rand()%(N-i)+i;
array[i] = array[randomIndex];
array[randomIndex] = temp;
}
FILE* fp;
fp = fopen("data","w+");
for ( i=0; i<k; ++i)
fprintf(fp,"%d\n",array[i]);
free(array);
return 0;
}
93
83
16
29
9
80
3
5
15/*
* =====================================================================================
* Filename: sortDataByBitMap.c
* Created: 03/20/2012 12:17:46 PM
* Compiler: gcc
*
* Author: zhy (), izualzhy@163.com
* Company:
* =====================================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#define N 100/*00000*/
#define k 10/*00000*/
#define BITSPERWORD 32
int main()
{
int array[N/BITSPERWORD+1];
memset(array,0,sizeof(array));
FILE* fp = fopen("data","r");
unsigned int ui,i=0;
for( i=0; i<k; ++i) {
fscanf(fp,"%d",&ui);
if ((array[ui/BITSPERWORD]>>(ui%BITSPERWORD) & 1) == 1)
printf("digits repeated!?\n");
else
array[ui/BITSPERWORD] |= 1<<ui%BITSPERWORD;
}
fclose(fp);
fp = fopen("sortdata","w");
int j = 0;
for ( i=0; i<N; ++i)
if ((array[i/BITSPERWORD]>>i%BITSPERWORD & 1)==1) {
fprintf(fp,"%d\n",i);
++j;
}
fclose(fp);
return 0;
}
5
9
15
16
29
79
80
83
93
]]>