基本思路:
- 輸入一組數字
- 將數組中最大的數字與數組的最後一位數字交換,原數組去掉最後一位構成新數組
- 重複第2步驟
#include <stdio.h>
int max_search(int a[], int length); // 函數聲明
int main(void)
{
int num[] = {1, 3, 56, 23, 90, 34, 0, -1, };
int length = sizeof(num) / sizeof(num[0]);
int i;
for ( i=length-1; i>0; i-- ) // 選擇排序過程
{
int maxid = max_search( num, i+1 );
int t = num[maxid];
num[maxid] = num[i];
num[i] = t;
}
for ( i=0; i<length; i++ )
{
printf("%d ", num[i]);
}
printf("\n");
return 0;
}
int max_search(int a[], int length) // 最大位搜索函數
{
int maxid = 0;
int i;
for ( i=1; i<length; i++ )
{
if ( a[i] > a[maxid] )
{
maxid = i;
}
}
return maxid;
}