用选择排序算法排序三个整数
题目来源:江西理工大学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;//就这么愉快的结束啦
}
知识点总结:
- 擂台法
- 选择排序算法
好了,每篇题解后面都附上一句话。
人们总说,时间会抹去一切的创伤,总有一天你会将痛苦遗忘,然后好起来。可不会的。有的痛永远忘不掉,有些伤永远不会好。 《白色橄榄树》 –