【9】算法排序 (选择排序)
思想:
每次选取最小或最大的数放在已排序的集合后面
完整代码
#include <stdio.h> void PrintSort(int * a, int n) { printf("\n"); int i = 0; for(i=0; i<n; i++) { printf(" %d ", a[i]); } printf("\n"); } void swap(int * a, int * b) { int t = *a; *a = *b; *b = t; } // 每次选取最小或最大的数放在已排序的集合后面 void SelectSort(int * a, int n) { int i, j, min; for (i=0; i<n; i++) { min = i; // 设置最小值为第一个数 for(j=i+1; j<n; j++) { if (a[j] < a[min]) { min = j; } } swap(&a[min], &a[i]); } } void main() { int a[8] = {9, 2, 1, 3, 8, 4, 7, 6}; SelectSort(a, 8); PrintSort(a, 8); }
做一个优秀的程序媛