Това при мен минава за около 30 сек.
// VC6
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
bool mysql_fetch(char *sql, int *&result, int &size) {
// ToDo: impl query + fetch
// currently stub impl
size = 10000000;
result = new int[size];
for(int i = 0; i < size; i++)
result[i ] = ((rand()<<16)+(unsigned)rand()) % 10000000;
// success
return true;
}
int compare_int(const void *a, const void *b) {
return *((int *)a) - *((int *)b);
}
void main() {
int *a, asize;
int *b, bsize;
int *c, csize;
if(mysql_fetch("SELECT id FROM A", a, asize)) {
if(mysql_fetch("SELECT id FROM B", b, bsize)) {
// impl MINUS
qsort(a, asize, sizeof *a, compare_int);
c = new int[bsize];
csize = 0;
for(int i; i < bsize; i++) {
if(!bsearch(&b[i ], a, asize, sizeof *a, compare_int)) {
c[csize++] = b[i ];
}
}
printf("csize = %d\n", csize);
printf("clock = %lg\n", double(clock()) / CLOCKS_PER_SEC);
}
}
}
cheers,
</wqw>