// Selection sort example #include #include void swapmin(int *v, int n) { int min = 0; for (int i = 1; i < n; i++) { if (v[i] < v[min]) min = i; } int tmp = v[0]; v[0] = v[min]; v[min] = tmp; } void selectionsort(int *v, int n) { for (int i = 0; i < n-1; i++) { swapmin(v+i, n-i); } } void randvector(int *v, int n) { for (int i = 0; i < n; i++) { v[i] = random() % 53 + 1; } } void printvector(int *v, int n) { printf("["); for (int i = 0; i < n; i++) { printf(" %2d", v[i]); } printf(" ]\n"); } int main(int argc, char **argv) { if (argc < 3) { fprintf(stderr, "%s: usage: %s 53 3\n" "53 is the random seed\n" "3 is the number of elements\n", argv[0], argv[0]); return 1; } int n = atoi(argv[2]); int v[n]; srandom(atoi(argv[1])); randvector(v, n); printvector(v, n); selectionsort(v, n); printvector(v, n); return 0; }