有这么一组数据
2 4 8 0 5 7 1 3 9
所谓冒泡排序:
1.比较相邻的元素,如第一个比第二个大,就交换他们两个
2.每次交换完之后都能确定相应的最大值。
3.重复以上的步骤,每次比较次数-1
第一次比较8次
第二次比较7次,因为最后一个已经比较出来是最大值了
以此类推共需要8次
所以总结
排序的总轮数=元素个数-1
每次对比次数=元素个数-排序轮数-1 (排序论述从零开始算起)
#include<iostream>
using namespace std;
int main() {
int a[9] = { 4,2,8,0,5,7,1,3,9 };
for (int i = 0; i < 9; i++)
cout << a[i] << " ";
cout << endl;
for (int i = 0; i < 9-1; i++) {
for (int j = 0; j<9 - 1 - i; j++) {
if (a[j] > a[j + 1]) {
swap(a[j], a[j + 1]);
}
}
}
for (int i = 0; i < 9; i++)
cout << a[i] << " ";
return 0;
}