选择排序

用选择排序算法排序三个整数

题目来源:江西理工大学OJ
题目地址:http://oj.jxust.edu.cn/problems/1238

题目描述
从键盘上任意输入三个整数,按照由小到大的顺序输出, 使用选择法编写该程序。

输入
输入三个整数

输出
输出排序后的三个整数

样例输入

3 1 2
样例输出

1 2 3

这边简单的和大家说一下选择排序算法哈,比如有十个数,先选出10个数中最小的数,和第1个数交换,然后在剩下的9个数中,选择最小的数,与第2个数交换(也就是这9个数中的第1个数),然后在剩下的8个数里面选择最小的数和第3个数交换(也就是这8个数中的第1个数),以此类推,就可以实现升序排序,当然也可以实现降序排序,只需把上面选数操作改成每次都选择最大的数交换即可,具体实现看代码。
上代码!!

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[100];
    int min = 1000000;
    for (int i = 0; i < 3; i++)
    {
        cin >> a[i];
    }
    int k;
    for (int i = 0; i < 3; i++)
    {
        min = 1000000;
        for (int j = i; j < 3; j++)
        {
            if (a[j] < min)//擂台法求最值
            {
                min = a[j];
                k = j;//记住它的位置,后面要交换
            }
        }
        swap(a[k], a[i]);
    }
    for (int i = 0; i < 3; i++)
    {
        cout << a[i] << " ";
    }
    cout << endl;
    return 0;//就这么愉快的结束啦
}

知识点总结:

  1. 擂台法
  2. 选择排序算法

好了,每篇题解后面都附上一句话。

人们总说,时间会抹去一切的创伤,总有一天你会将痛苦遗忘,然后好起来。可不会的。有的痛永远忘不掉,有些伤永远不会好。 《白色橄榄树》 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值