8643 简单选择排序
时间限制:1000MS 代码长度限制:10KB
提交次数:2235 通过次数:1301
题型: 编程题 语言: G++;GCC
Description
用函数实现简单选择排序,并输出每趟排序的结果
输入格式
第一行:键盘输入待排序关键的个数n 第二行:输入n个待排序关键字,用空格分隔数据
输出格式
每行输出每趟排序的结果,数据之间用一个空格分隔
输入样例
10 5 4 8 0 9 3 2 6 7 1
输出样例
0 4 8 5 9 3 2 6 7 1 0 1 8 5 9 3 2 6 7 4 0 1 2 5 9 3 8 6 7 4 0 1 2 3 9 5 8 6 7 4 0 1 2 3 4 5 8 6 7 9 0 1 2 3 4 5 8 6 7 9 0 1 2 3 4 5 6 8 7 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int t,n;
scanf("%d",&n);
int date[n]; //按需求定义一个数组
for(int i=0;i<n;i++)
scanf("%d",&date[i]); //录入数据
for(int i=0;i<n-1;i++) //从第一个开始,将其与其后面的进行比较,故只能循环至n-2,若循环至n-1会越界
{
int min=i;
for(int j=i+1;j<n;j++) //从i位置开始到最后的所有元素中寻找最小的值的位置,先将i赋予min,再与后面的比较
{
if(date[min]>date[j])
{
min=j; //找到比min位置的值更小的,将其位置赋予min
}
}
t=date[i];
date[i]=date[min];
date[min]=t; //将date[i]与最小的值交换
for(int k=0;k<n;k++)
printf("%d ",date[k]); //每趟遍历
printf("\n");
}
return 0;
}