n个整数,请使用选择排序算法对其按从小到大排序,输出第m趟排序的结果。 输入 测试数据有多组,每组的第一行是两个正整数n和m,其中2<=n<=20,0<m<=n-1,第二行是n个整数,所有数据之间均用空格分隔。 输出 对于每组测试数据,输出单独的一行,对这n个整数进行m趟选择排序后的结果。数据之间用一个空格分隔。 样例输入 复制 10 1 9 8 7 6 5 4 3 2 1 0 10 2 9 8 7 6 5 4 3 2 1 0 样例输出 复制 0 8 7 6 5 4 3 2 1 9 0 1 7 6 5 4 3 2 8 9使用C语言
时间: 2023-12-31 08:06:38 浏览: 80
好的,下面是使用 C 语言实现选择排序算法,并输出第 m 轮排序结果的代码:
```c
#include <stdio.h>
void selection_sort(int arr[], int n, int m) {
for (int i = 0; i < m; i++) {
int min_idx = i;
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
int tmp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = tmp;
}
}
int main() {
int n, m;
while (scanf("%d%d", &n, &m) != EOF) {
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
selection_sort(arr, n, m);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
return 0;
}
```
其中,`selection_sort` 函数用于实现选择排序算法,`arr` 是待排序的数组,`n` 是数组的长度,`m` 是排序的轮数。
在 `main` 函数中,我们可以读入多组测试数据,对于每组数据,先调用 `selection_sort` 函数进行排序,然后输出排序后的结果。注意,每个元素之间需要输出一个空格,每组数据输出后需要换行。
希望对你有所帮助!
阅读全文