PTA 選擇排序

 基本思路:

  1. 輸入一組數字
  2. 將數組中最大的數字與數組的最後一位數字交換,原數組去掉最後一位構成新數組
  3. 重複第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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章