目录
前言:
学完选择排序后,继续学习冒泡排序。
C++源代码实现
#include<iostream>
using namespace std;
int n = 0;
int a[1001];
int p;
int main()
{
int numbers;
while (cin >> numbers)
{
a[n++] = numbers;
}
for (int i = 0; i < n-1; ++i)
{
for (int j = 0; j < n-i-1; ++j)//一轮确定一个最值边界,所以n-i
{
if (a[j] > a[j + 1])
{
p = a[j];
a[j] = a[j + 1];
a[j + 1] = p;
}
}
}
for (int i = 0; i < n; ++i)
cout << a[i] << " ";
cout << endl;
return 0;
}
与选择排序的比较:
两者都是一轮都够在边界确定下一个最值,不同点在于选择排序一轮使用的是擂台的方式确定最值,冒泡排序则是通过相邻位置的比较立下最值。
分析感受:
1.可以看出冒泡排序的时间复杂度也是O(n^2),也就是说冒泡排序没有实质上能够对选择排序做出改进。
2.在处理较多的数据时,两者都不够实用