c#-氣泡排序-演算法

曾祥展發表於2013-09-06

氣泡排序(Bubble Sort)

氣泡排序演算法的運作如下:

1.比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

3.針對所有的元素重複以上的步驟,除了最後一個。

4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

 

平均時間複雜度 O(n^2)

 

氣泡排序

 

       /// <summary>
       /// 氣泡排序
       /// </summary>
       /// <param name="arr"></param>
       /// <param name="count"></param>
       public static void BubbleSort(int[] arr, int count)
       {
           int i = count, j;
           int temp;
           while (i > 0)
           {
               for (j = 0; j < i - 1; j++)
               {
                   if (arr[j] > arr[j + 1])
                   {
                       temp = arr[j];
                       arr[j] = arr[j + 1];
                       arr[j + 1] = temp;
                   }
               }
               i--;
           }
       }




          //使用例子
          int[] y = new int[] { 1, 32, 7, 2, 4, 6, 10, 8, 11, 12, 3, 9, 13, 5 };
           BubbleSort(y,  y.Length );
           foreach (var item in y)
           {
               Console.Write(item+" ");  
           }
           //1 2 3 4 5 6 7 8 9 10 11 12 13 32
       

  

 

 

 

相關文章