请写出一段整数绝对值冒泡排序的C++实例代码
时间: 2024-12-14 19:02:59 浏览: 19
在C++中,你可以使用绝对值和冒泡排序算法结合,对一组整数数组按绝对值大小进行升序排列。下面是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义绝对值函数
int absoluteValue(int num) {
return abs(num);
}
// 冒泡排序函数,接受一个整数向量并返回已排序的版本
void bubbleSortAbs(vector<int>& nums) {
int n = nums.size();
for (size_t i = 0; i < n - 1; ++i) {
for (size_t j = 0; j < n - i - 1; ++j) {
if (absoluteValue(nums[j]) > absoluteValue(nums[j + 1])) {
// 使用绝对值比较,交换元素
swap(nums[j], nums[j + 1]);
}
}
}
}
int main() {
vector<int> numbers = {-5, 3, -9, 2, -7};
cout << "Original array: ";
for (const auto& num : numbers) {
cout << num << " ";
}
bubbleSortAbs(numbers);
cout << "\nSorted array by absolute value: ";
for (const auto& num : numbers) {
cout << num << " ";
}
return 0;
}
```
阅读全文