冒泡排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。

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

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

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

以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

nodejs实现冒泡排序和快速排序

java编程的冒泡等排序示例

深度解析(十五)冒泡排序

冒泡排序

拓扑排序(图)、冒泡排序、插入排序

冒泡排序