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;
}

 

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