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