排序---交换排序---冒泡排序 Bubble Sort

来源:互联网 发布:php只能做网站吗 编辑:程序博客网 时间:2024/05/22 05:04

 

                          冒泡排序 Bubble Sort
        思路:

        将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们 要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不 对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在 作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处 理,它们已正确地排好序。

       代码实验:

       void BubbleSort(int *p, int len)
       {
               // 总循环次数len-1
              for (int i = 0; i < len; i++)
              {
                     for (int j = 0; j < len - i; j++)
                     {
                              if (p[j] > p[j+1])

                                     Swap(p[j], p[j+1]);
                     }
             }
      }

        时间复杂度:

        最好:O(n) 最坏:O(n^2)  平均:O(n^2)

原创粉丝点击