排序
1.
题目描述
用选择法对10个整数从小到大排序。
输入
输入10个无序的数字
输出
排序好的10个整数
样例输入
4 85 3 234 45 345 345 122 30 12
样例输出
3
4
12
30
45
85
122
234
345
345
#include<iostream>
#include<algorithm>
using namespace std;
int cmp(int num1, int num2)//<号是从小到大排序
{
return num1 < num2;
}
int main()
{
int arr[10];
for (int i = 0; i < 10; i++)
{
cin >> arr[i];
}
sort(arr, arr + 10, cmp);
for (int i = 0; i < 10; i++)
{
cout << arr[i]<<endl;
}
}
2.
题目描述
输入三个字符串,按由小到大的顺序输出
输入
3行字符串
输出
按照从小到大输出成3行
样例输入
cde
afg
abc
样例输出
abc
afg
cde
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
string s1, s2, s3;
vector<string>s;
cin >> s1 >> s2 >> s3;
s.push_back(s1);
s.push_back(s2);
s.push_back(s3);
sort(s.begin(), s.end());
cout << s[0] << endl;
cout << s[1] << endl;
cout << s[2] << endl;
}
3.
题目描述
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。
题目保证对于每一个测试实例,所有的数的绝对值都不相等。
输入
输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,
n=0表示输入数据的结束,不做处理。
输出
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。
每个测试实例占一行
样例输入
3 3 -4 2
4 0 1 2 -3
0
样例输出
-4 3 2
-3 2 1 0
#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
bool cmp(int num1, int num2)
{
return abs(num1) > abs(num2);
}
int main()
{
int n;
int arr[10];
while (cin>>n)
{
if (n == 0)
break;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
}
4.
题目描述
将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。
新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。
输入
输入有多行,第一行为N表示行数,每行9个整数.
输出
输出N行,按要求进行排序的结果.
样例输入
2
6 8 9 1 2 5 4 7 3
3 5 8 9 1 2 6 4 7
样例输出
3 4 5 2 1 6 8 9 7
2 1 3 5 8 9 6 4 7
#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int a,i=0;
int arr[9], dp[100];
cin >> a;
while ((i++) < a)
{
for (int i = 0; i < 9; i++)
{
cin >> arr[i];
}
for (int i = 8; i >=0; i--)
{
if (arr[0] > arr[i])
cout << arr[i] << " ";
else
dp[i] = 1;
}
for (int i = 0; i < 9; i++)
{
if (dp[i] == 1)
cout << arr[i] << " ";
}
cout << endl;
}
}
5.
题目描述
有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。
输入
无
输出
无
样例输入
15/12/1999
10/21/2003
10/22/2003
02/12/2004
11/30/2005
12/31/2005
样例输出
15/12/1999
10/21/2003
10/22/2003
02/12/2004
11/30/2005
12/31/2005
#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
#include <iomanip>
using namespace std;
struct data
{
int MM;
int DD;
int YYYYY;
char c;
}stu[100];
int cmp(struct data n1, struct data n2)
{
if(n1.YYYYY!=n2.YYYYY)
return n1.YYYYY < n2.YYYYY;
else if (n1.MM != n2.MM)
return n1.MM < n2.MM;
else if (n1.DD != n2.DD)
return n1.DD < n2.DD;
}
int main()
{
int n=0;
while (cin >> stu[n].MM >> stu[n].c >> stu[n].DD>> stu[n].c >> stu[n].YYYYY)
{
n++;
}
sort(stu, stu + n, cmp);
for (int i = 0; i < n; i++)
{
cout << setfill('0') << setw(2) << stu[i].MM << stu[i].c << setfill('0') << setw(2) << stu[i].DD << stu[i].c << setfill('0') << setw(4) << stu[i].YYYYY << endl;
}
return 0;
}