设计一个主函数和三个子函数,主函数实现如下功能通过主函数发送一个选择菜单并获取一个数组(数组最大为50)然后通过用户选择的方式进行调用相应的函数,子函数分别实现如下功能:冒泡排序、快速排序、选择排序,在排序后输出数组。
时间: 2024-11-09 18:30:07 浏览: 13
设计一个包含主函数和三个子函数的程序可以按照以下步骤进行:
```c++
#include <iostream>
using namespace std;
// 子函数1:冒泡排序
void bubbleSort(int arr[], int size) {
for (int i = 0; i < size - 1; ++i) {
for (int j = 0; j < size - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
swap(arr[j], arr[j + 1]);
}
}
}
cout << "Bubble Sort result: ";
for (int i : arr) {
cout << i << " ";
}
cout << endl;
}
// 子函数2:快速排序
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
quickSort(arr, low, pivot - 1);
quickSort(arr, pivot + 1, high);
}
cout << "Quick Sort result: ";
for (int i : arr) {
cout << i << " ";
}
cout << endl;
// 冒泡排序的分区操作
int partition(int arr[], int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
swap(arr[i], arr[j]);
}
}
swap(arr[i + 1], arr[high]);
return i + 1;
}
}
// 子函数3:选择排序
void selectionSort(int arr[], int size) {
for (int i = 0; i < size - 1; ++i) {
int minIndex = i;
for (int j = i + 1; j < size; ++j) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
swap(arr[i], arr[minIndex]);
}
cout << "Selection Sort result: ";
for (int i : arr) {
cout << i << " ";
}
cout << endl;
}
// 主函数 main()
int main() {
const int MAX_SIZE = 50;
int arr[MAX_SIZE];
cout << "Enter array elements (separated by space): ";
for (int i = 0; i < MAX_SIZE; ++i) {
cin >> arr[i];
}
int choice;
cout << "\nChoose a sorting algorithm:\n1. Bubble Sort\n2. Quick Sort\n3. Selection Sort\n";
cin >> choice;
switch (choice) {
case 1:
bubbleSort(arr, MAX_SIZE);
break;
case 2:
quickSort(arr, 0, MAX_SIZE - 1);
break;
case 3:
selectionSort(arr, MAX_SIZE);
break;
default:
cout << "Invalid choice! Please select a number from 1 to 3." << endl;
break;
}
return 0;
}
```
在这个程序中,`main()`函数负责接收用户的输入,显示排序选项,根据用户的选择调用对应的子函数(bubbleSort、quickSort 或 selectionSort),最后输出排序后的结果。
阅读全文