//选择排序算法
#include <stdlib.h> #include <stdio.h> #include <math.h> #define max_num 100 #define SWAP(X, Y, TEMP) ((TEMP = X), (X = Y), (Y = TEMP)) int main(int argc, char *argv[]) { int list[max_num]; int i, j, num, min, temp; printf("Please input number:"); scanf("%d", &num); if (num < 0 || num > max_num) { fprintf(stderr, "invalid data\n"); exit(1); } for (i = 0; i < num; i++) { list[i] = rand() % 1000; printf("%d ", list[i]); } printf("\n"); for (i = 0; i < num; i++) { min = i; for (j = i + 1; j < num; j ++) { if (list[j] < list[min]) min = j; } SWAP(list[i], list[min], temp); } printf("After select sort result:\n"); for (i = 0; i < num; i ++) printf("%d ", list[i]); printf("\n"); }
原文:http://blog.csdn.net/chenliang0224/article/details/18993239