最幸运的小孩(ง •̀_•́)ง 2021-11-10 08:58 采纳率: 10.5%
浏览 25

改进版得选择法对数组进行排序

对一串数组,先从第一个数字到最后一个数字进行比较选择最大的数字放到第一位,再从第二个数字到最后一个数数字进行比较选择最大的放到第二个数字上,以此类推对数组排序

  • 写回答

2条回答 默认 最新

  • 关注

    代码如下:

    #include <stdio.h>
    int main()
    {
        int a[20],n;
        int i,j;
        int index,tmp;
        printf("请输入数组元素个数:");
        scanf("%d",&n);
        printf("请输入数组元素:");
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        //排序
        for (i=0;i<n-1;i++)
        {
            index = i;
            //找出第i大的数所在的位置
            for(j=i+1;j<n;j++)
            {
                if(a[j] > a[index])
                    index = j;
            }
    
            //将第i大的数放在第i个位置
            if (i != index)
            {
                tmp = a[i];
                a[i] = a[index];
                a[index] = tmp;
            }
        }
    
        //显示数组
        for (i=0;i<n;i++)
        {
            printf("%d ",a[i]);
        }
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月10日