taming-cpp

Experiments with C++ and comparisons with C
git clone https://git.tronto.net/taming-cpp
Download | Log | Files | Refs | README

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 }