/**
* 实验二 10个元素数组冒泡排序 小到大
*/
#include <iostream>
using namespace std;
void bubblesort(int array[]) {
for (int i = 0; i < 10 - 1; i++) {
bool flat = false; //flat的作用是监测此次循环有没有发生交换,若无交换则是排完序了
for (int j = 0; j < 10 - 1 - i; j++) {//flat的存在使冒泡效率高点
if (array[j] > array[j + 1]) { //两两对比,将较大的数放在后面
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flat = true;
}
}
if (flat == false) { //里层的循环没走了,代表已经排好序了,无需再走外层循环(外层循环未走完时)
break;
}
}
}
void printbubblesort(int array[]) { //打印冒泡后的数组
for (int i = 0; i < 10; i++) {
cout << array[i] << " ";
}
cout << endl;
}
int main() {
int array[10]; //定义数组并输入
for (int i = 0; i < 10; i++) {
cin >> array[i];
}
bubblesort(array);
printbubblesort(array);
system("pause");
}