2、输入长度为 n 的整形数组,分别使用选择和冒泡排序进行排序。
代码:
#include<iostream>
using namespace std;
void seletSort(int Array[], int n);
void dubbleSort(int Array[], int n);
void print(int Array[], int n);
//构造了三个函数分别用来选择排序、冒泡排序和打印数组。
int main() {
int n;
while(cin >> n&&n>0){
int * Array = new int[n];
//利用new来实现动态数组
for (int i = 0; i < n; i++) {
cin >> Array[i];
}
seletSort(Array,n);
print(Array, n);
}
system("pause");
return 0;
}
//冒泡排序
void dubbleSort(int Array[], int n) {
int max = Array[0];
int temp;
for (int i = 0; i < n - 1; n--) {
for (int j = 0; j < n-1; j++) {
if (Array[j] > Array[j + 1]) {
temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
}
}
void print(int Array[], int n) {
for (int i = 0; i < n; i++) {
cout << Array[i] << " ";
}
cout << endl;
}
//选择排序
void seletSort(int Array[], int n) {
int min = Array[0];
int a,temp;
for (int i = 0; i < n-1; i++) {
min = Array[i];
for (int j = i + 1; j < n; j++) {
if (Array[j] < min) {
min = Array[j];
a = j;
}
}
temp = Array[i];
Array[i] = min;
Array[a] = temp;
}
}
//此题只需要明白冒泡排序和选择排序的原理即可