sort.c (680B)
1 #define _POSIX_C_SOURCE 200809L /* Required to use clock_gettime */ 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <time.h> 6 7 int a[ARRAYSIZE]; 8 9 int compar(const void *x, const void *y) { return *(int *)x - *(int *)y; } 10 11 int main() { 12 srand(time(NULL)); 13 for (int i = 0; i < ARRAYSIZE; i++) a[i] = rand() % 1000000000; 14 15 struct timespec begin; 16 clock_gettime(CLOCK_MONOTONIC, &begin); 17 18 qsort(a, ARRAYSIZE, sizeof(int), compar); 19 20 struct timespec end; 21 clock_gettime(CLOCK_MONOTONIC, &end); 22 double time = end.tv_sec - begin.tv_sec + 23 (end.tv_nsec - begin.tv_nsec) / 1000000000.0; 24 25 printf("(%d) C time for %d numbers: %lfs\n", 26 a[ARRAYSIZE/2], ARRAYSIZE, time); 27 28 return 0; 29 }