使用函数实现选择和冒泡排序:分别定义选择排序函数void selectsortlintallint n)和冒泡排序函数viod bubblesort(intallintn)对数组a中的元素进行排序,主函数中输入数组元素和元素个数,先调用选择排序函数对数组元素升序排序后输出结果,然后再调用冒泡排序对数组元素降序排序并输出结果。
时间: 2024-01-22 12:17:31 浏览: 66
下面是选择排序和冒泡排序的实现代码:
```c++
#include <iostream>
using namespace std;
void selectsort(int a[], int n) {
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
swap(a[i], a[minIndex]);
}
}
}
void bubblesort(int a[], int n) {
for (int i = 0; i < n - 1; i++) {
bool flag = false;
for (int j = 0; j < n - 1 - i; j++) {
if (a[j] < a[j + 1]) {
swap(a[j], a[j + 1]);
flag = true;
}
}
if (!flag) {
break;
}
}
}
int main() {
int n;
cout << "请输入元素个数:";
cin >> n;
int a[n];
cout << "请输入" << n << "个元素:";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
selectsort(a, n);
cout << "选择排序升序结果:";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
bubblesort(a, n);
cout << "冒泡排序降序结果:";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
以上代码中,选择排序和冒泡排序的实现分别使用了两层循环,外层循环控制排序次数,内层循环负责比较和交换元素的位置。在选择排序中,每一轮找到最小元素的下标,然后将其与当前位置的元素交换位置;在冒泡排序中,每一轮比较相邻元素大小,如果前一个元素比后一个元素小,则交换它们的位置,这样每一轮都可以把当前未排序区间的最大元素放到已排序区间的最前面。
阅读全文