设计函数sortArray,使用选择排序方法,实现将数组int arr[15] = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};中的数分别按照从小到大、从大到小的顺序排列并输出。
时间: 2023-08-19 12:31:40 浏览: 75
好的,下面是使用选择排序法实现对数组排序的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
void sortArray(int arr[], int n, bool isAscending) {
for (int i = 0; i < n - 1; i++) {
int minOrMax = i;
for (int j = i + 1; j < n; j++) {
if (isAscending ? arr[j] < arr[minOrMax] : arr[j] > arr[minOrMax]) {
minOrMax = j;
}
}
if (minOrMax != i) {
swap(arr[i], arr[minOrMax]);
}
}
}
int main() {
int arr[15] = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
int n = sizeof(arr) / sizeof(arr[0]);
sortArray(arr, n, true);
cout << "从小到大排序结果:";
for (int i = 0; i < n; i++) {
cout << " " << arr[i];
}
cout << endl;
sortArray(arr, n, false);
cout << "从大到小排序结果:";
for (int i = 0; i < n; i++) {
cout << " " << arr[i];
}
cout << endl;
return 0;
}
```
这个函数的参数包括要排序的数组 `arr`,数组的长度 `n`,以及一个布尔值 `isAscending` 表示是否按照从小到大的顺序排序。使用两层循环,外层循环控制每一轮排序的起始位置,内层循环遍历未排序的部分,找到最小或最大的元素,然后将其与起始位置的元素交换。最后,根据 `isAscending` 的值,选择从小到大或从大到小排序。
阅读全文