1. 程式人生 > >排序演算法的時間複雜度和空間複雜度-----總結

排序演算法的時間複雜度和空間複雜度-----總結

演算法的時間複雜度是指:演算法執行過程中所需要的基本運算次數。

常見的演算法時間複雜度由小到大依次為:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n^2)<Ο(n^3)<…<Ο(2^n)<Ο(n!)。其中O(1)表示基本語句的執行次數是一個常數,一般來說,只要演算法中不存在迴圈語句,其時間複雜度就是Ο(1)。其中Ο(log2n)、Ο(n)、 Ο(nlog2n)、Ο(n2)和Ο(n3)稱為多項式時間,而Ο(2n)和Ο(n!)稱為指數時間

一個演算法的空間複雜度(Space Complexity)S(n)定義為該演算法所耗費的儲存空間。

常用排序演算法穩定性,時間複雜度分析:


氣泡排序,選擇排序,堆排序空間複雜度為O(1),因為需要一個臨時變數來交換元素位置,(另外遍歷序列時自然少不了用一個變數來做索引). 快速排序空間複雜度為logn(因為遞迴呼叫了) ,歸併排序空間複雜是O(n),需要一個大小為n的臨時陣列