编写2个函数函数,分别实现冒泡排序法、选择排序法,在main函数中调用函数,对1维数组int a[]={121,131,45,8,90,-1,3}进行排序升序排序和降序排序。
时间: 2024-10-24 19:16:38 浏览: 14
用VC++冒泡法实现的排序
好的,这里有两个简单的C++函数,分别实现了冒泡排序(Bubble Sort)和选择排序(Selection Sort)。我们将这两个函数放在`sort_array`和`reverse_sort_array`中,并在`main`函数中分别调用它们。
```cpp
#include <iostream>
// 冒泡排序函数
void sort_array(int arr[], int size, bool isAscending) {
for (int i = 0; i < size - 1; ++i) {
for (int j = 0; j < size - i - 1; ++j) {
if (isAscending) { // 升序排序
if (arr[j] > arr[j + 1]) {
std::swap(arr[j], arr[j + 1]);
}
} else { // 降序排序
if (arr[j] < arr[j + 1]) {
std::swap(arr[j], arr[j + 1]);
}
}
}
}
}
// 选择排序函数
void selection_sort(int arr[], int size, bool isAscending) {
for (int i = 0; i < size - 1; ++i) {
int minIndex = i;
for (int j = i + 1; j < size; ++j) {
if (isAscending ? arr[j] < arr[minIndex] : arr[j] > arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
std::swap(arr[i], arr[minIndex]);
}
}
}
int main() {
int a[] = {121, 131, 45, 8, 90, -1, 3};
int array_size = sizeof(a) / sizeof(a[0]);
// 调用冒泡排序并打印结果
sort_array(a, array_size, true);
std::cout << "Sorted in ascending order: ";
for (int num : a) {
std::cout << num << " ";
}
std::cout << "\n";
// 调用选择排序并打印结果
sort_array(a, array_size, false);
std::cout << "Sorted in descending order: ";
for (int num : a) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
当你运行这个程序,它会首先按照升序对数组a进行排序,然后按照降序再次排序。
阅读全文