// #define _XOPEN_SOURCE 500 #include #include #include /* Fung’s I Can’t Believe It Can Sort */ void cantbelievesort(int *p, size_t n) { int tmp; for (size_t i = 0; i < n; i++) { for (size_t j = 0; j < n; j++) { if (p[i] < p[j]) tmp = p[i], p[i] = p[j], p[j] = tmp; } } } /* for comparison, from dumbsort.c; not sure who invented this simplified gnome sort */ void dumbsort(int *p, size_t n) { int tmp; for (size_t i = 1; i < n; i++) { if (p[i] < p[i-1]) tmp = p[i], p[i] = p[i-1], p[i-1] = tmp, i = 0; } } int main(int argc, char **argv) { if (argc < 2) return fprintf(stderr, "Usage: %s 42\n", argv[0]); int n = atoi(argv[1]); int v[n]; srandom(getpid()); for (int i = 0; i < n; i++) v[i] = random() % (2*n); cantbelievesort(v, n); for (int i = 0; i < n && i < 100; i++) printf("%d ", v[i]); puts(""); return 0; }