马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
冒泡排序
冒泡排序的基本原理是对存放原始数据的数组,按从前往后的方式进行扫描。
当发现相邻两个数组的次序与排序要求的大小次序不符合时,就将两个元素互换。
冒泡排序原理
- 比较相邻的元素。如果第一个比第二个大,就交换它们两个。
- 对每一对相邻元素做同样的工作,从开始的第一对到结尾的最后一对,这样在最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 重复步骤 1~3,直到排序完成。
冒泡排序例题
输入 n 个 int 类型的数(n <= 100),将它们按照从小到大的顺序输出。
输入为两行,第一行为 n,表示 n 个数;第二行为待排序的 n 个数。
输出为一行,即按照从小到大的顺序排列好的 n 个数。
我的程序如下:
// File: sort.cpp
// 冒泡排序算法
#include <iostream>
using namespace std;
int main()
{
int a[100] = {}, n, i, ncopy;
cin >> n;
ncopy = n - 1;
for (i = 0; i < n; i++)
{
cin >> a[i];
}
while (true)
{
int flag = 1, temp;
for (i = 0; i < ncopy; i++)
{
if (a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
flag = 0;
}
}
ncopy--;
if (flag)
break;
}
for (i = 0; i < n; i++)
{
cout << a[i] << " ";
}
return 0;
}
冒泡排序总结
排序算法有很多,冒泡排序只是其中一种比较简单的排序方法。
冒泡排序是最稳定的一种排序方法。
冒泡排序法的性能一般,平均时间复杂度为 O(n2)。 |