冒泡排序

这里参考的是大话数据结构里的冒泡排序,冒泡排序的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。冒泡法的效率是非常低下的。现在贴上代码:

  #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;
  }

将代码中数组中的元素写成一列,这样就能很直观的表现出冒泡法的思想,或许这就是冒泡法的由来吧。

原文地址:https://www.cnblogs.com/a-dreaming-dreamer/p/5809931.html