冒泡排序
这里参考的是大话数据结构里的冒泡排序,冒泡排序的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。冒泡法的效率是非常低下的。现在贴上代码:
#include<iostream>
using namespace std;
int main()
{
int a[] = { 1, 5, 3, 7, 2, 9, 8 };
bool flag = true;//标志位,防止无意义的循环
for (int i = 0; i < sizeof(a) / sizeof(int)&&flag; i++)
{
flag = false;
for (int j = sizeof(a) / sizeof(int)-1; j > i; j--)
{
if (a[j] < a[j - 1])
{
int b;
b = a[j];
a[j] = a[j-1];
a[j-1] = b;
flag = true;//如果有数据交换则flag置为true
}
}
}
for (int i = 0; i < sizeof(a) / sizeof(int); i++)//输出排好序的数组
{
cout << a[i] << "";
}
return 0;
}
将代码中数组中的元素写成一列,这样就能很直观的表现出冒泡法的思想,或许这就是冒泡法的由来吧。