不要使用Vector和abs函数,就是用int数组
时间: 2024-12-19 21:26:12 浏览: 3
如果你想要使用一个整数数组而不是`std::vector`,并且避免直接使用`abs()`函数来获取绝对值,可以手动编写一个函数来计算绝对值。以下是使用C++数组和自定义绝对值函数实现冒泡排序的例子:
```cpp
#include <iostream>
// 自定义绝对值函数
int absoluteValue(int num) {
return num >= 0 ? num : -num;
}
// 冒泡排序函数,接受一个整数数组并返回排序后的数组
void bubbleSortAbs(int arr[], int size) {
for (int i = 0; i < size - 1; ++i) {
for (int j = 0; j < size - i - 1; ++j) {
if (absoluteValue(arr[j]) > absoluteValue(arr[j + 1])) {
// 交换元素,考虑负数和正数的比较
int temp = arr[j];
arr[j] = absoluteValue(arr[j]);
arr[j + 1] = temp;
}
}
}
}
int main() {
const int arr[] = {5, -3, -9, 2, -7};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Original array: ";
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
bubbleSortAbs(arr, n);
cout << "\nSorted array by absolute value: ";
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
return 0;
}
```
阅读全文