1. 程式人生 > >【軟考】演算法-冒泡

【軟考】演算法-冒泡

冒泡的本質是相鄰的兩個數兩兩交換,我這裡讓小數沉底大數上浮,排序出來的結果都在右邊右半部分是一個有序區

冒泡核心程式碼:

for (int i = 0; i < arr.Length - 1; i++)
            {
                #region 將大的數字移到陣列的arr.Length-1-i
                for (int j = 0; j < arr.Length - 1 - i; j++)
                {
                    if (arr[j] > arr[j + 1])
                    {
                        temp = arr[j + 1];
                        arr[j + 1] = arr[j];
                        arr[j] = temp;
                    }
                 }
               #endregion
            }


其實還是那個最簡單的例子:2個數裡找最大/小的怎麼找?引入第三變數!

關鍵在於條件怎麼寫。

所以插入排序的時間複雜度是

空間複雜度是指需要用多少個輔助變數,插入演算法用了一個臨時變數來交換位置,所以空間複雜度是O(1)


放個動圖: