日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【算法】快速排序与归并排序对比

發布時間:2025/6/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法】快速排序与归并排序对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法 系列博客

【算法】刷題范圍建議 和 代碼規范
【算法】復雜度理論 ( 時間復雜度 )

【字符串】最長回文子串 ( 蠻力算法 )
【字符串】最長回文子串 ( 中心線枚舉算法 )
【字符串】最長回文子串 ( 動態規劃算法 ) ★
【字符串】字符串查找 ( 蠻力算法 )
【字符串】字符串查找 ( Rabin-Karp 算法 )

【算法】雙指針算法 ( 雙指針算法分類 | 相向雙指針 | 有效回文串 )
【算法】雙指針算法 ( 有效回文串 II )
【算法】哈希表 ( 兩數之和 )

【算法】快速排序
【算法】歸并排序
【算法】快速排序與歸并排序對比


文章目錄

  • 算法 系列博客
  • 一、時間復雜度
  • 二、空間復雜度
  • 三、排序穩定性
  • 三、局部有序與整體有序





一、時間復雜度



快速排序 ( Quick Sort )歸并排序 ( Merge Sort ) 的時間復雜度都是 O(nlog?n)O(n \log n)O(nlogn) ;


快速排序 的 平均時間復雜度O(nlog?n)O(n \log n)O(nlogn) , 該時間復雜度是一個期望值 , 快速排序在 最壞情況下會達到 O(n2)O(n^2)O(n2) ;

如 : 數組 [1,2,3] 排序 , 有 6 種排列方式 , 計算這 6 種排序時間復雜度的平均期望就是 O(nlog?n)O(n \log n)O(nlogn) ;

最壞的情況時 [1,2,3] 排列情況 , 時間復雜度 O(n2)O(n^2)O(n2) ;


歸并排序 的 最好情況下的時間復雜度最壞情況下的時間復雜度 都是 O(nlog?n)O(n \log n)O(nlogn) ;


從時間復雜度來講 , 歸并排序 的穩定性 要比 快速排序 高 , 二者時間復雜度相當 ;





二、空間復雜度



從空間復雜度來講 , 歸并排序 的空間復雜度是 O(n)O(n)O(n) , 快速排序 的空間復雜度是 O(1)O(1)O(1) , 快速排序沒有使用額外的空間 , 在數組原地進行排序 ,





三、排序穩定性



排序的穩定性 : 假如數組中有兩個相同的元素 , 給這兩個相同的元素分別打上標記 , 如果每次排列得到的元素順序都是相同的 , 則說明該排序是穩定的 ;

如 : {2,1,1,2}\{2,1,1,2\}{2,1,1,2} , 中給 222 打上標記 , {2′,1,1,2′′}\{2',1,1,2''\}{2,1,1,2} , 最終排序后是 {1,1,2′,2′′}\{1,1,2', 2''\}{1,1,2,2} 還是 {1,1,2′′,2′}\{1,1,2'', 2'\}{1,1,2,2} ;

快速排序中 , 這兩個結果隨機出現 , 同樣使用快速排序 , 并不能保證得到的是相同的標記元素次序 ;

歸并排序 , 可以保證 , 每次排序 , 得到的都是相同的結果 ;





三、局部有序與整體有序



快速排序 與 歸并排序 , 都是將數組分為兩個部分 , 然后兩部分再次進行遞歸 ;


快速排序 隨便選擇了一個數組元素 p 作為中心點 , 將小于等于 p 的元素放在左邊 , 將大于等于 p 的元素放在了右邊 , 分割完畢后 , 左側的元素肯定小于右側的元素 ;
然后對左側 和 右側 再次分別選擇一個元素 m , n , 進行分割 , 分為 4 份 ,
在 4 份的基礎上 , 再次進行分割 , 分為 8 份 , 遞歸調用該快速排序算法 , 直到所有的元素有序為止 ;

快速排序 是 先整體有序 , 然后局部有序 ;


歸并排序 先根據中心點分成兩部分 , 左側和右側分別進行排序 , 兩遍都排序完畢后 , 再組合到一起 ;

歸并排序 是 先局部有序 , 然后整體有序 ;

總結

以上是生活随笔為你收集整理的【算法】快速排序与归并排序对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。