选择算法c++ 使用模板进行份文件编写实现升序降序代码
时间: 2024-04-09 18:33:55 浏览: 147
当你需要在C++中实现一个通用的排序算法,可以使用模板来编写代码。下面是一个使用模板的示例,实现升序和降序排序:
```cpp
#include <iostream>
#include <vector>
// 泛型函数模板,实现升序排序
template<typename T>
void ascendingSort(std::vector<T>& arr) {
int n = arr.size();
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
std::swap(arr[j], arr[j+1]);
}
}
}
}
// 泛型函数模板,实现降序排序
template<typename T>
void descendingSort(std::vector<T>& arr) {
int n = arr.size();
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] < arr[j+1]) {
std::swap(arr[j], arr[j+1]);
}
}
}
}
int main() {
std::vector<int> nums = {5, 2, 8, 9, 1};
// 调用升序排序函数模板
ascendingSort(nums);
std::cout << "升序排序结果: ";
for (const auto& num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
// 调用降序排序函数模板
descendingSort(nums);
std::cout << "降序排序结果: ";
for (const auto& num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的示例中,我们使用了两个函数模板 `ascendingSort` 和 `descendingSort`,分别实现了升序和降序排序。这两个函数都接受一个 `std::vector` 参数,并通过传引用的方式修改输入的数组。我们使用了冒泡排序算法来进行排序,但你可以根据需求选择其他排序算法。
在主函数中,我们创建了一个整数类型的向量 `nums`,并分别调用了升序和降序排序模板函数来对其进行排序。最后,我们通过循环打印出排序后的结果。
希望这个示例能帮到你!如果有任何问题,请随时提问。
阅读全文