blob: 63a76143cbfbac089fdaaee372e1bd561bb2ea31 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
extern void quicksort(int lo, int hi, long * data);
int cmplong(const void * i, const void * j)
{
long vi = *((long *) i);
long vj = *((long *) j);
if (vi == vj) return 0;
if (vi < vj) return -1;
return 1;
}
int main(int argc, char ** argv)
{
int n, i;
long * a, * b;
int bench = 0;
if (argc >= 2) n = atoi(argv[1]); else n = 1000;
if (argc >= 3) bench = 1;
a = malloc(n * sizeof(long));
b = malloc(n * sizeof(long));
for (i = 0; i < n; i++) b[i] = a[i] = rand() & 0xFFFF;
quicksort(0, n - 1, a);
if (!bench) {
qsort(b, n, sizeof(long), cmplong);
for (i = 0; i < n; i++) {
if (a[i] != b[i]) { printf("Bug!\n"); return 2; }
}
printf("OK\n");
}
return 0;
}
|