码迷,mamicode.com
首页 > 其他好文 > 详细

2017.11.8

时间:2017-11-08 23:27:50      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:tac   div   problem   插入排序   http   editable   处理   插入   2-2   

交换输出

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
 
描述
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。(如果这个第一个数就是最小的数,则保持原样输出,如果最小的数有相同的按照前面的交换)
 
输入
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
输出
对于每组输入数据,输出交换后的数列,每组输出占一行。
样例输入
4 2 1 3 4
5 5 4 3 2 1
0
样例输出
1 2 3 4
1 4 3 2 5


技术分享

 

#include<iostream>
#include<string>
#include<stack> //出入栈头文件
using namespace std;
int main()
{
int n=0;
cin>>n;
int array[n]; //用于排序的数组,其实更好的方法是不用进行排序的
int arr1[n]; //用于保存原来输入的原始数据
int m=0; //用于存储最小数所在的位置
for(int k=0;k<n;k++)
{
cin>>array[k];
arr1[k]=array[k];
}
for(int i=1;i<n;i++) //插入排序法
{
int temp=array[i];
int j=i-1;
while(j>=0&&array[j]>temp)
{
array[j+1]=array[j];
j--;
}
array[j+1]=temp;
}
for(int k=0;k<n;k++)//计算出 原始数据中最小数所在的位置,方便后面交换
{
if(arr1[k]==array[0])
m=k;
}
int temp2=arr1[0]; //交换最小数与原来数据的第一位
arr1[0]=array[0];
arr1[m]=temp2;
for(int k=0;k<n;k++)//输出
{
cout<<arr1[k]<<‘ ‘;

}
return 0;
}



2017.11.8

标签:tac   div   problem   插入排序   http   editable   处理   插入   2-2   

原文地址:http://www.cnblogs.com/panlangen/p/7806797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!