用C++写一段置换选择排序代码模板
时间: 2023-08-04 18:11:43 浏览: 120
下面是一段使用模板实现的置换选择排序的C++代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
void swap(T& a, T& b)
{
T temp = a;
a = b;
b = temp;
}
template<typename T>
void selectionSort(vector<T>& arr)
{
int n = arr.size();
for (int i = 0; i < n; 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)
{
swap(arr[i], arr[min_idx]);
}
}
}
int main()
{
vector<int> arr = {5, 2, 8, 4, 1, 3};
selectionSort(arr);
for (auto x : arr)
{
cout << x << " ";
}
return 0;
}
```
这段代码中,我们使用了模板来泛化数据类型。通过这种方式,我们可以使用相同的代码来对任何类型的数组进行排序。我们首先定义了一个swap函数,用于交换数组中的元素。然后是selectionSort函数,它使用嵌套的循环来查找最小元素,并将其与当前位置交换。最后,我们在main函数中创建了一个整数数组并对其进行排序。
阅读全文