排序:將一組雜亂無章的資料按一定規律順次排列起來。即將無序序列排成乙個有序序列(由小到大或由大到小)的運算。
若參加排序的資料結點包含多個資料域,排序往往是針對其中某個域而言。
排序的應用非常廣泛:
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...