數據結構-第十章 排序

 

排序的目的是什麼?
便於查找!

如何衡量排序算法的好壞?


時間效率
排序速度(比較次數與移動次數)


空間效率
佔內存輔助空間的大小


穩定性
A和B的關鍵字相等,排序後A、B的先後次序保持不變,則稱這種排序算法是穩定的。

 

 按待排序記錄所在位置,分爲兩類
內部排序
待排序記錄存放在內存,排序過程不需訪問外存便能完成
外部排序
參加排序的記錄數量很大,排序過程需對外存進行訪問

按排序過程中依據的原則,分爲五類
插入排序:直接插入排序、折半插入排序、希爾排序
交換排序:冒泡排序、快速排序
選擇排序:簡單選擇排序、堆排序
歸併排序:2-路歸併排序
基數排序

 

 

1.直接插入排序

時間複雜度爲 O(n2),空間複雜度爲 O(1),是一種穩定的排序方法

 

2.折半插入排序

 

3.希爾排序

希爾排序是不穩定排序
dk 值較大,子序列中對象較少,速度較快;
dk 值逐漸變小,子序列中對象變多,但大多數對象已基本有序,所以排序速度仍然很快。


 

 

4.冒泡排序

時間複雜度:O(n²)
空間複雜度:O(1)
冒泡排序是穩定排序

 

 

5.快速排序

 

 

 

 

 

6.簡單選擇排序

 

 

 

 時間複雜度:O(n²)
空間複雜度:O(1)
簡單選擇排序是不穩定排序

 

7.堆排序

 

 

 

8.歸併排序

 

 

9 基數排序

多關鍵字排序

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章