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

2021-08-14 09:39:06 字數 475 閱讀 2555

涉及排序演算法包括:簡單選擇排序、直接插入排序、希爾排序、歸併排序、氣泡排序、快速排序、堆排序、基數排序

時間複雜度:快些以nlogn的速度歸隊

此句表示時間複雜度為o(nlogn)的排序,「快」表示快速排序,「些」表示希爾排序,「歸」表示歸併排序,「隊」表示堆排序,其他排序均為o(n²),特殊的基數排序為o(nlog(r)m)。

注:快排的最壞情為o(n²),此時待排序的序列為正序或者逆序。氣泡排序最好的情況為o(n),此時為序列有序。

空間複雜度:快速排序為logn,歸併排序為n,基數排序為n+r,其餘空間複雜度均為1

穩定性:情緒不穩定,快些選一堆好友聊天吧

此句內容表示的是不穩定的排序,「快」表示快速排序,「些」表示希爾排序,「選」表示簡單選擇排序,「堆」表示堆排序。

注:簡單選擇排序有爭議,其可以通過**實現穩定排序。

演算法時間複雜度空間複雜度

演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...

演算法 時間複雜度 空間複雜度

1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...

演算法複雜度 時間複雜度和空間複雜度

1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數...