/************************************************************************* > File Name: sec_sort.c > Author:heathcliff > Mail: --------------------- > Created Time: 2016年04月06日 星期三 18時38分46秒 ************************************************************************/ #include<stdio.h> void sec_sort_min_max(int A[],int n) { int i,j,min,temp; for(i = 0; i < n; i++){ min = i; /*此處若寫爲for(j = 0;j<n;j++),則程序將會發生排序錯誤的bug*/ for(j = i; j < n; j++){ if(A[j] < A[min]) min = j; } if(min != i){ temp = A[min]; A[min] = A[i]; A[i] = temp; } } } void sec_sort_max_min(int A[],int n) { int i,j,max,temp; for(i = 0;i < n;i++){ max = i; for(j = i;j < n;j++){ if(A[max] < A[j]) max = j; } if(i != max){ temp = A[max]; A[max] = A[i]; A[i] = temp; } } } int main(void) { int i; int a[5] = {1,3,10,4,2}; printf("未排序前元素順序爲:\n"); for(i = 0; i < 5; i++){ printf("[%d]",a[i]); } printf("\n"); sec_sort_min_max(a,5); printf("排序後元素順序爲(從小到大):\n"); for(i = 0; i < 5; i++){ printf("[%d]",a[i]); } printf("\n"); sec_sort_max_min(a,5); printf("排序後元素順序爲(從大到小):\n"); for(i = 0; i < 5; i++){ printf("[%d]",a[i]); } printf("\n"); }