设计一个函数,对一个整数数组按升序进行排序(冒泡或选择排序等方法), 并在main()函数调用之。
时间: 2023-04-27 14:02:28 浏览: 116
以下是一个简单的选择排序函数的示例代码:
```c++
#include <iostream>
using namespace std;
void selectionSort(int arr[], int n) {
for (int i = ; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
swap(arr[i], arr[minIndex]);
}
}
int main() {
int arr[] = { 5, 2, 7, 3, 1, 6 };
int n = sizeof(arr) / sizeof(arr[]);
selectionSort(arr, n);
for (int i = ; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return ;
}
```
该函数接受一个整数数组和数组的大小作为参数,并使用选择排序算法对数组进行排序。在主函数中,我们创建一个整数数组并将其传递给选择排序函数。最后,我们打印排序后的数组。
相关问题
用c语言编写一个程序,对给定的整数数组R采用冒泡排序法进行从小到大的排序,要求将冒泡排序过程设计成一个函数。
下面是一个用 C 语言编写的冒泡排序程序:
```c
#include <stdio.h>
void bubble_sort(int arr[], int len);
int main() {
int arr[] = {5, 2, 8, 6, 1, 9, 3, 7};
int len = sizeof(arr) / sizeof(int);
int i;
printf("Original array:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, len);
printf("Sorted array:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void bubble_sort(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len-1; i++) {
for (j = 0; j < len-i-1; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
这个程序定义了一个 `bubble_sort` 函数,接受一个整数数组和数组长度作为参数。函数使用冒泡排序算法对数组进行从小到大的排序。在主函数中,我们定义了一个整数数组并进行排序。
编写2个函数函数,分别实现冒泡排序法、选择排序法,在main函数中调用函数,对1维数组int a[]={121,131,45,8,90,-1,3}进行排序升序排序和降序排序。
好的,这里有两个简单的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进行排序,然后按照降序再次排序。
阅读全文
相关推荐














