7-4 K轮排序 (10 分)
输入n个数据。请用选择法进行从大到小的降序排序,输出第k轮排序后的数列状况。
输入格式:
输入第一行给出一个不超过10的正整数n和轮次k(k<n)。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
在这里给出一组输入。例如:
8 2
75 71 77 76 63 89 12 55
输出样例:
在这里给出相应的输出。例如:
89 77 71 76 63 75 12 55
#include<iostream>
#include<vector>
#include<algorithm>
int main(void)
{
std::ios::sync_with_stdio(false);
std::cin.tie(0);
int n, k, tmp=0;
std::cin >> n >> k;
if (k < n) {
std::vector<int> p(n);
for (int i = 0; i < n; i++)
std::cin >> p[i];
for (int i = 0; i < k; i++)
{
int cnt = p[i];
tmp = i;
for (int j = i+1 ; j < n; j++)
{
if (cnt < p[j])
{
tmp = j;
cnt = p[j];
}
}
std::swap(p[i], p[tmp]);
}
for (int i = 0; i < n-1; i++)
std::cout << p[i] << " ";
std::cout << p[n - 1];
return 0;
}
return 0;
}