数据结构---排序算法的总结
生活随笔
收集整理的這篇文章主要介紹了
数据结构---排序算法的总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據結構—排序算法的總結
分類
冒泡排序,時間復雜度O(n x n),空間復雜度O(1),穩定
簡單選擇排序,時間復雜度O(n x n),空間復雜度O(1),不穩定
希爾排序,時間復雜度O(n^1.3),空間復雜度O(1),不穩定
堆排序,時間復雜度O(nlogn),空間復雜度O(1),不穩定
快速排序,時間復雜度O(nlogn),空間復雜度O(logn),不穩定
歸并排序,時間復雜度O(nlogn),空間復雜度O(n),穩定
基數排序,時間復雜度O(n+r),空間復雜度O(rd),穩定
桶排序,時間復雜度O(n x n),空間復雜度O(n+m),穩定
簡單插入排序,時間復雜度O(n x n),空間復雜度O(1),穩定
應用場景:
1.基本排好序的數可以考慮使用冒泡排序,簡單插入排序
2.對穩定性有要求的可以考慮使用歸并排序,基數排序
3.對10^5數量級左右的數據可以考慮快速排序,c++封裝的sort函數就是采用快速排序作為底層算法,排序數的數量不宜太多,否則會導致棧溢出
4.獲取TopK和最大(小)值,可以考慮使用堆排序
4.一堆數中是否有重復數,重復數有哪些,以及重復數的個數等獲取。
參考趣學數據結構!!!
如果存在什么問題,歡迎批評指正!謝謝!
總結
以上是生活随笔為你收集整理的数据结构---排序算法的总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 耳屎多久清理一次
- 下一篇: 新生儿一直嗯嗯的用力是怎么回事