C语言作业——选择法排序

请注意,本文编写于 284 天前,最后修改于 283 天前,其中某些信息可能已经过时。

题目:用选择法对10个整数排序
代码:

#include <stdio.h>
int main()
{
    int a[10],i,n,less,t;
    printf("请输入10个数字,每个以回车分割");
    //输入10个数字,依次赋值给数组a中的元素
    for (i = 0; i <= 9; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i <= 9; i++) //控制与后面元素进行比较的元素
    {
        less = a[i];
        for (n = i + 1; n <= 9; n++) //基准元素与后面依次比较
        {
            if (less > a[n])
            {
                //基准元素大于后面的元素则交换它们的值
                t = less;
                less = a[n];
                a[n] = t;
            }
        }
        a[i] = less; //将一轮比较得到的最小值赋给基准元素
    }
    //排序完毕,依次输出各个元素
    printf("排序结果为");
    for (i = 0; i <= 9; i++)
    {
        printf("%d\t", a[i]);
    }
    printf("\n");
    return 0;
}

添加新评论

已有 4 条评论

wallking wallking

博主代码片段和留言效果这个怎么做的

代码块样式主题自带,至于留言效果我不知道你具体指什么

其实还可以在 less > a[n] 的时候不交换,纪录当前的 n 值,直到遍历完一次,找到 a [n] 最小时的 n 然后再交换,减少了交换的次数。

感谢指点