排序 穩定 初始序列 複雜度

2021-09-27 23:35:28 字數 1223 閱讀 1122

例: 求解遞推關係t(n) = 2t(n/4) + n log n

a = 2,b = 4⇒n^logba = n^log42 = n0.5

f (n) = n log n

case 3:f (n) =ω(n0.5+ε),其中ε=0.5>0

並且 a f (n/b) = 2 (n/4)log(n/4) = (1/2)n log n – n ≤(1/2)n log n = c f (n),其中c=1/2<1

∴t (n) =θ(n log n)

順口溜:

快選希堆不穩(這幾種排序是不穩定的), 歸選基堆不變(這幾種排序的時間複雜度不變化

元素的時間複雜度與初始序列無關的是:口訣:一堆(堆排序)海歸(歸併排序)選(選擇排序)**

假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,ri=rj,且ri在rj之前,而在排序後的序列中,ri仍在rj之前,則稱這種排序演算法是穩定的;否則稱為不穩定的

空間複雜度:

氣泡排序,簡單選擇排序,堆排序,直接插入排序,希爾排序的空間複雜度為o(1),因為需要乙個臨時變數來交換元素位置,(另外遍歷序列時自然少不了用乙個變數來做索引)

快速排序空間複雜度為logn(因為遞迴呼叫了) ,

歸併排序空間複雜是o(n),需要乙個大小為n的臨時陣列.

基數排序的空間複雜是o(n),桶排序的空間複雜度不確定

快排的時間複雜度平均就是o(nlogn),當資料序列有序時最差是o(n^2),退化成了氣泡排序;空間複雜度log(n),最壞是o(n),

快排最好的情況下,時間複雜度是 o(n*logn).

排序演算法時間複雜度 空間複雜度 穩定性整理

涉及排序演算法包括 簡單選擇排序 直接插入排序 希爾排序 歸併排序 氣泡排序 快速排序 堆排序 基數排序 時間複雜度 快些以nlogn的速度歸隊 此句表示時間複雜度為o nlogn 的排序,快 表示快速排序,些 表示希爾排序,歸 表示歸併排序,隊 表示堆排序,其他排序均為o n 特殊的基數排序為o ...

常用排序演算法時間複雜度 空間複雜度 穩定性比較

最近在準備秋招的期間遇到了很多排序演算法時間複雜度 空間複雜度 穩定性相關的題目,那就做個大致的總結吧。排序演算法 時間複雜度 平均 時間複雜度 最壞 時間複雜度 最好 空間複雜度 穩定性直接插入排序 o n o n o n o 1 穩定希爾排序 o nlog2n o n o n o 1 不穩定直接...

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

本文簡單介紹幾種面試中常用的排序演算法,並對每個演算法的時間複雜度 空間複雜度 穩定性進行分析。1 氣泡排序 void swap int num1,int num2 void bubblesort int array,int size int main int argc,const char arg...