有n个整数,请使用选择排序算法对其按从小到大排序,输出第m趟排序的结果。 输入 测试数据有多组,每组的第一行是两个正整数n和m,其中2<=n<=20,0<m<=n-1,第二行是n个整数,所有数据之间均用空格分隔。 输出 对于每组测试数据,输出单独的一行,对这n个整数进行m趟选择排序后的结果。数据之间用一个空格分隔。
时间: 2024-02-17 19:01:16 浏览: 30
好的,以下是一种可能的解决方案:
```c
#include <stdio.h>
void selection_sort(int arr[], int n, int m) {
for (int i = 0; i < m; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
// 输出第m趟排序的结果
if (i == m - 1) {
for (int k = 0; k < n; k++) {
printf("%d ", arr[k]);
}
printf("\n");
}
}
}
int main() {
int n, m, arr[20];
while (scanf("%d%d", &n, &m) == 2) { // 多组测试数据
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
selection_sort(arr, n, m); // 使用选择排序算法对数组arr排序
}
return 0;
}
```
输入示例:
```
6 2
5 8 4 6 1 3
```
输出示例:
```
1 4 5 6 8 3
```
阅读全文