加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C语言选择排序算法

发布时间:2020-12-15 17:31:47 所属栏目:百科 来源:网络整理
导读:用选择排序法对一组数据由小到大进行排序,数据分别为 526、36、2、369、56、45、78、92、125、52。 实现过程: (1) 程序中用到T两个 for 循环语句。第一个 for 循环是确定位置的,该位置是存放每次从待排序数列中经选择和交换后所选出的最小数。第二个 for
用选择排序法对一组数据由小到大进行排序,数据分别为 526、36、2、369、56、45、78、92、125、52。

实现过程:

(1) 程序中用到T两个 for 循环语句。第一个 for 循环是确定位置的,该位置是存放每次从待排序数列中经选择和交换后所选出的最小数。第二个 for 循环是实现将确定位置上的数与后面待排序区间中的数进行比较的。

(2) 程序代码如下:
#include <stdio.h>
int main()
{
    int i,j,t,a[11];    //定义变量及数组为基本整型
    printf("请输入10个数:n");
    for(i=1;i<11;i++)
        scanf("%d",&a[i]);    //从键盘中输入要排序的10个数字
    for(i=1;i<=9;i++)
        for (j=i+1;j<=10;j++)
            if(a[i]>a[j])    //如果前一个数比后一个数大,则利用中间变量t实现两值互换
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
    printf("排序后的顺序是:n");
    for(i=1;i<=10;i++)
        printf("%5d",a[i]);    //输出排序后的数组
    printf("n");
    return 0;
}

运行结果:

请输入10个数:
526 36 2 369 56 45 78 92 125 52
排序后的顺序是:
??? 2?? 36?? 45?? 52?? 56?? 78?? 92? 125? 369? 526

技术要点:

选择排序的基本算法是从待排序的区间中经过选择和交换后选出最小的数值存放到 a[0] 中,再从剩余的未排序区间中经过选择和交换后选出最小的数值存放到 a[1] 中,a[1] 中的数字仅大于 a[0],依此类推,即可实现排序。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读