《資料結構》 排序

2021-09-25 13:33:21 字數 1149 閱讀 3044

排序:將一組雜亂無章的資料按一定規律順次排列起來。即將無序序列排成乙個有序序列(由小到大或由大到小)的運算。

若參加排序的資料結點包含多個資料域,排序往往是針對其中某個域而言。

排序的應用非常廣泛:

1.軟體中直接應用(排序功能,如**按銷量排序、**排序商品)

2.程式中間接應用

二分法查詢(要求在有序的表上完成查詢)

最短路徑、最小生成樹(要求按邊的路徑長度進行排序)

按儲存介質分類:

內部排序:資料量不大,資料在記憶體,無需內外存交換資料

外部排序:資料量較大,資料在外存較多(檔案排序)   外部排序時,要將資料分批調入記憶體來排序,中間結果還要及時放入外存,顯然外部排序要複雜的多。

按比較器個數分類:

序列排序:單處理機(同一時刻只能比較一對元素)

並行排序:多處理機(同一時刻比較多對元素)

按主要操作分類:

比較排序:用比較的方法,如插入排序、交換排序、選擇排序、歸併排序

基數排序:不比較元素的大小,僅僅根據元素本身的取值確定其有序位置

按輔助空間分類:

原地排序:輔助空間用量為o(1)的排序方法。(所佔的輔助空間與參加排序的資料量大小無關)

非原地排序:輔助空間用量超過o(1)的排序方法。

按穩定性分類:

穩定排序:能夠使任何數值相等的元素,排序以後相對次序不變。

不穩定排序:不是穩定排序的方法

排序的穩定性只對結構型別資料排序有意義。但排序方法是否穩定,並不能衡量乙個排序演算法的優劣。

按自然性分類:

自然排序:輸入資料越有序,排序的速度越快的排序方法

非自然排序:不是自然排序的方法。

學習內容:內部排序、序列排序、基於比較排序和基數排序的一些排序方法

按排序依據原則:

插入排序:直接插入排序、折半插入排序、希爾排序

交換排序:氣泡排序、快速排序

選擇排序:簡單選擇排序、堆排序

歸併排序:2-路歸併排序

基數排序

按排序工作量:

簡單的排序方法:t(n) = o(n^2)

基數排序:t(n) = o(d*n)

先進的排序方法:t(n) = o(nlogn)

儲存結構 -- 假設記錄序列以順序表儲存,注:0號位置一般作哨兵或緩衝區

資料結構 排序

小小總結了下 希望別不記得 排序型別 排序方法 平均時間 最壞時間 最好時間 穩定空間 插入直接插入 o n2 o n2 o n 穩定o 1 希爾排序 o n3 2 增量序列最後為1,只有公因子1 不穩o 1 選擇簡單選擇 o n2 o n2 o n 穩定o 1 堆排序o n lb n o n lb...

資料結構 排序

郝斌版 資料結構 學習筆記 冒泡 公升序,12比,大放後面,再23比,直至最大的在最後面 插入 2,3,4,依次插入值,保證插入值後的序列為有序的 選擇 後面所有的最小值依次排到最前 快速排序 歸併排序 22排,44排,88排.排序演算法標準 時間,空間,穩定性 排序和查詢的關係 排序是查詢的前提,...

資料結構 排序

1.希爾排序 shellsort 增量序列d n為要排序數的個數 void shellinsertsort int a,int n,int dk n個要排序的數,dk是增量 2 堆排序 已知h s m 除了h s 外均滿足堆的定義 調整h s 使其成為大頂堆.即將對第s個結點為根的子樹篩選,para...