选择排序
【问题描述】
有n个大小不等的梨, 请利用选择排序将他们按照从小到大的顺序排列, 并输出。 输入: 两行第一行一个整数n, 第二行n个随机正整数表示梨的重量( 1<=n<=100 )。 输出: 一行, 升序排列的整数序列。
【样例输入】
5
12 8 3 7 15
【样例输出】
3 7 8 12 15
#include<iostream> using namespace std; int main(){ int n,a[101],mina,pos; cin>>n; for(int i=1; i<=n; i++){ cin>>a[i]; } // 选择排序: 每遍历一次序列找出最小值,然后最小值前置。 for(int i=1; i<=n-1; i++){ pos=i; // 假设下标为i元素是最小值,则记录其下标。 // 位置j是递增的。 mina=a[i]; // 假设第一个元素最小,打擂台法。 for(int j=i+1; j<=n; j++){ if(a[j]<mina){ mina=a[j]; pos=j; // 记录当前最小值元素的下标。 } } swap(a[pos], a[i]); // 交换位置 } for(int i=1; i<=n; i++){ cout<<a[i]<<" "; } return 0; }