【数据结构】对排序的综合总结
生活随笔
收集整理的這篇文章主要介紹了
【数据结构】对排序的综合总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
排序可以分為以下幾個大類:
(1)插入排序:直接插入排序、折半插入排序和希爾排序
(2)交換排序:快速排序和冒泡排序
(3)選擇排序:簡單選擇排序和堆排序
(4)外部排序:歸并排序和基數(shù)排序
針對內(nèi)部排序的效率總結(jié):
(1)時間復(fù)雜度為 O(nlogn) 的有:希爾排序、快速排序和堆排序
(2)空間復(fù)雜度不為 O(1) 的有:快速排序,采用遞歸需要用到棧,所以 O(logn) ~ O(n)
(3)對于穩(wěn)定性來說,只有三種排序是穩(wěn)定的:插入排序的前兩種和冒泡排序
(4)對于全局有序來說:選擇排序和交換排序
對于數(shù)據(jù)初始狀態(tài)總結(jié):
(1)對于少量數(shù)據(jù)的排序 —— 直接插入和選擇排序
(2)數(shù)據(jù)基本有序的情況 —— 直接插入、折半插入和冒泡排序(正序)
(3)中等規(guī)模的數(shù)據(jù),最差和平均差不多 —— 希爾排序
(4)適用于數(shù)據(jù)規(guī)模較大的 —— 堆排序、歸并排序、基數(shù)排序、快速排序
(5)數(shù)據(jù)規(guī)模較大,數(shù)據(jù)分布隨機 —— 快速排序
總結(jié)
以上是生活随笔為你收集整理的【数据结构】对排序的综合总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Redis6快速深入学习01】NoSQ
- 下一篇: 【leetcode】762. 二进制表示