#include <iostream>
using namespace std;
// 冒泡排序 (和鱼冒泡泡一样,从底部往水面冒)
void BubbleSort(int A[], int n) {
int i, j; // 冒泡中两层循环用到
bool flag; // 判断排序是否结束
for (i = 0; i < n - 1; ++i) { // 冒泡排序因为是将一个个值不停的冒到最终位置(也就是一次冒泡确定一个值的顺序),所以最多就n - 1次冒泡,其实可以试一下10,9,8,7,6,5这个逆序,当第五次冒泡结束后,5就在第一个了,不需要再继续了
flag = false;
for (j = 0; j < n - 1 - i; ++j) {
if (A[j] > A[j + 1]) { // 如果大的值在前面,则交换
swap(A[j], A[j + 1]);
flag = true;
}
}
if (!flag) {
return;
}
}
}
int main(){
int A[10] = {19, 2, 5, 4, 18, 99, 88, 77, 66, 33};
BubbleSort(A, 10);
for (int i = 0; i < 10; ++i) {
cout << A[i] << endl;
}
return 0;
}
原文:https://www.cnblogs.com/adamweng/p/14546892.html