给定一个数组,需要获取数组进行i次选择排序后的结果,使用c++完成
时间: 2024-09-29 10:15:46 浏览: 31
LeetCode 每日一题 912. 排序数组 C++描述
5星 · 资源好评率100%
在C++中,选择排序是一种简单的排序算法,它每次从未排序的部分选取最小(或最大)的元素,放到已排序部分的末尾。若你需要模拟i次选择排序的过程,可以创建一个函数,每次调用时执行一次选择排序。下面是使用C++实现的一个示例:
```cpp
#include <iostream>
#include <vector>
void selectionSort(std::vector<int>& arr) {
int n = arr.size();
for (int i = 0; i < n - 1; ++i) {
int min_idx = i;
for (int j = i + 1; j < n; ++j) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
if (min_idx != i) {
// 交换最小元素到当前位置
std::swap(arr[i], arr[min_idx]);
}
}
}
// 模拟i次选择排序
std::vector<int> performSelectionSortIterations(const std::vector<int>& arr, int i) {
std::vector<int> result = arr; // 先复制原始数组
for (int iter = 0; iter < i; ++iter) {
selectionSort(result);
}
return result;
}
int main() {
std::vector<int> input_array = {5, 2, 8, 1, 9};
int iterations = 3;
std::vector<int> sorted_array = performSelectionSortIterations(input_array, iterations);
std::cout << "After " << iterations << " iterations of selection sort:\n";
for (const auto& num : sorted_array) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
在这个例子中,`performSelectionSortIterations`函数接受一个整数向量和迭代次数作为输入,然后进行指定次数的选择排序操作。
阅读全文