1. 程式人生 > 實用技巧 >排序演算法的複雜度和穩定性

排序演算法的複雜度和穩定性

排序演算法的複雜度和穩定性

複雜度又分為時間複雜度和空間複雜度
  • 時間複雜度 : 表示執行排序演算法時消耗的時間
  • 空間複雜度 : 排序演算法在執行過程中佔用儲存空間的大小
  • 穩定性 : 排序前後相同的元素 原來的位置是否改變, 如果改不了就是不穩定的如果不改變就是穩定的。
    接下來將對他們的複雜度和穩定性做解析:
          時間      空間      穩定性
選擇:     0(n^2)    0(1)      不穩定
冒泡:     0(n^2)    0(1)      穩定
插入:     0(n^2)    0(1)      穩定
快速:     0(nlogn)  0(nlogn)  不穩定
二分:     0(logn)
  1. O(1)表示 表示最低複雜度 一般是常量值1 。複雜度不會受到資料量的大小改變而改變(雜湊演算法)。
  2. O(n):資料量增大n倍 複雜度耗時也增大n倍 (一重迴圈變數).
  3. O(logn) :當資料量增大到n倍時 n=256 logn是2 的底數
  4. O(n^2) :對n個數實現排序 需要對n*n進行查詢(氣泡排序)
  5. O(nlogn) : 就是n 和logn相乘 當資料量增大256 耗時=256*8=2048(快速排序)