1. 程式人生 > >c#程式碼實現排序演算法之氣泡排序

c#程式碼實現排序演算法之氣泡排序

氣泡排序的平均時間複雜度為O(n²),最好時間複雜度為O(n),最壞時間複雜度為O(n²),空間複雜度為O(1),是一種穩定的演算法。

1.將整個待排序的記錄序列劃分成有序區無序區,初始時有序區為空,無序區包括所有待排序的記錄。
2.對無序區從前向後依次比較相鄰記錄,若反序則交換,從而使得值較小的記錄向前移,值較大的記錄向後移(向水中的氣泡,體積大的先浮上來)。
3.重複執行2,直到無序區中沒有反序的記錄。

       public static void popSort()
        {
            int[] list = { 7, 5, 6, 3, 9, 4, 1 };
            for (int i = 0; i < list.Length - 1; i++)
            {
                for (int j = 0; j < list.Length - 1 - i; j++)
                {
                    if (list[j] > list[j + 1])
                    {
                        int t = list[j];
                        list[j] = list[j + 1];
                        list[j + 1] = t;
                    }
                }
            }
        }