C选择排序《@ Q|CSDN创作打卡》

1:先选则第一个数,与其它数进行比较,把最小的放在数组的第一个位置及s[0]处。

2:再从第二个数开始往后比较,把最小的放在第二位。

3:这样一直到最后两个比较完后,就以升序排列好了。

4:例如:5 7 3 4 2

(1):在这五个数中拿出第一个数,作为初始数据,通过与其后面的数据比较,选出最最小的,与第一位的数,交换位置为:

2 7 3 4 5

(2):再从第二个数开始,通过与其后面的数据的比较选出最小的,与第二位的数进行位置得:

2 3 7 4 5

(3):再从第三个数开始,通过与其后面的数据的比较选出最小的,与第三位的数进行位置交换得:

2 3 4 7 5

(4):再从第四个数开始,通过与其后面的数据的比较选出最小的,与第四位的数进行位置交换得:

2 3 4 5 7

5:代码实现:

#include<stdio.h>

void main()
{
    int x,y,temp,min;
    int s[5]={5,7,3,4,2};
    for(x=0;x<4;x++)
    {
        min=x;
        for(y=x+1;y<5;y++)
        {
            if(s[min]>s[y])
            {
                min=y;
            }
        }
        if(min!=x)
        {
            temp=s[min];
            s[min]=s[x];
            s[x]=temp;
        }
    }
    int a=0;
    for(a ;a<5;a++)
    {
        printf("%d\n",s[a]);
    }
}

6:程序中用到两个for循环语句

(1):第一个for循环是确定位置的,该位置是存放每次从待排序数列中经选择和交换后所选出的最小数。

(2):第二个for循环是实现将确定位置上的数与后面待排序中的数进行比较的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值