排序算法

排序算法

排序:整理文件中的記錄,使之按關鍵字遞增(遞減)的次序排列起來

被排序對象-文件

排序運算的依據-關鍵字

 

1.排序的穩定性

當待排序記錄的關鍵字均不相同時,排序結果是唯一的,否則不唯一

穩定性的前提:待排序的文件中,存在多個關鍵字相同的記錄

經過排序後:

       若具有相同關鍵字的記錄之間的相對次序保持不變,該排序方法是穩定

若具有相同關鍵字的記錄之間的相對次序發生變化,則是不穩定

2.排序的分類

按是否涉及數據的內、外存交換,分爲內部排序和外部排序

排序過程中,整個文件都放在內存中處理,排序不涉及數據的內外存交換,,則稱之爲內部排序,否則,稱之爲外部排序

內部排序常用於記錄個數不是很多的小文件

外部排序適用於記錄個數太多、不能一次將其全部放入內存的大文件

3.排序的基本操作

       1.比較兩個關鍵字的大小

       2.改變指向記錄的指針或者移動記錄本身

第二中操作依賴於待排序記錄的存儲方式。

4.待排文件的常用存儲方式

1.以順序表作爲存儲結構

對記錄本身進行物理重排,即通過關鍵字的比較,將記錄移到合適的位置

2.以鏈表作爲存儲結構

無須移動記錄,僅需修改指針

3.用順序的方式存儲待排序的記錄,但同時建立一個輔助表,比如包括關鍵字和指向記錄位置的指針組成的索引表

只需對輔助表的表目進行物理重排,即只移動輔助表的表目,而不移動記錄本身

5.評價算法的性能指標

1.執行時間和所需的輔助空間

2.算法本身的複雜程度

1.時間複雜度

大多數排序算法的時間開銷主要是關鍵字之間的比較和記錄的移動,有的排序算法其執行時間不僅依賴於問題的規模,還取決於輸入實例中數據的狀態(已排序好或者說反向排序好)

2.空間複雜度

若排序算法所需的輔助空間並不依賴於問題的規模n,即輔助空間爲O(1),則稱之爲就地排序(In-Place,非就地排序要求的輔助空間一般爲O(n)

6.穩定排序和不穩定排序

 

最壞

最好

平均

空間複雜度

穩定性

冒泡排序

O(n2)

O(n)

O(n)

O(1)

穩定

堆排序

 

 

 

 

 

插入排序

 

 

 

 

 

歸併排序

 

 

 

 

 

快速排序

 

 

 

 

 

基數排序

 

 

 

 

 

選擇排序

 

 

 

 

 

希爾排序

 

 

 

 

 


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