题目描述 给出n(n≤100)个整数,请输出使用选择排序递增排列时所经过的交换次数。注意:相等的数不需要交换,自己和自己也不需交换。 输入 测试数据有多组,第一行的正整数T就是测试数据的组数。每组测试数据单独占一行,第一个数就是该组数据的个数n,后跟n个整数。 输出 对于每组测试数据,输出结果单独占一行,表示使用选择排序递增排列时所经过的交换次数。
时间: 2024-02-13 20:07:32 浏览: 37
以下是用C++实现选择排序并计算交换次数的代码,可以通过该题:
```c++
#include <iostream>
using namespace std;
int selectionSort(int arr[], int n)
{
int cnt = 0; // 记录交换次数
for (int i = 0; i < n - 1; i++) {
int minIdx = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIdx]) {
minIdx = j;
}
}
if (i != minIdx) {
cnt++;
swap(arr[i], arr[minIdx]);
}
}
return cnt;
}
int main()
{
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int cnt = selectionSort(arr, n);
cout << cnt << endl;
}
return 0;
}
```
该程序可以处理多组测试数据,每组测试数据的第一个数为n,表示该组数据有n个整数。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)