資料結構 排序

2021-09-25 16:34:17 字數 933 閱讀 5258

排序

1.分為兩類:

(1)內排序:指在排序期間資料記錄全部存放在記憶體的排序;

(2)外排序:指在排序期間全部記錄個數太多,不能同時存放在記憶體,必須根據排序過程的要 求,不斷在內、外存之間移動的排序。

2.排序演算法

(1)直接插入排序:通過線性搜尋來確定待插入記錄的位置;

基本過程:當插入第i(i>=1)個記錄時,前面的r[0],r[1],…,r[i-1]已經排好序(遞增)。這時,用r[i]的關鍵碼與r[i-1],r[i-2],…的關鍵碼順序進行比較,找到插入的位置即將r[i]插入,原來位置上的記錄向後順移。

**實現;

(2)折半插入排序:

基本過程:把n個待排序的元素看成乙個有序表和乙個無序表,開始時有序表中只有乙個元素r[0],無序表中有n-1個元素;排序過程即每次次從無序表中取出第乙個元素,將這個元素插入到有序表中,使之成為新的有序表,重複n-1次完成整個排序過程。

**實現:

(3)希爾排序:

希爾演算法:先將排序組分成若干子串行;然後在子串行中進行直接插入排序。

a.按距離d將待排序陣列r分成若干個小組,等距離的在同乙個組中,初始距離 為d1(d=[r/2]向上取)

b.在每乙個子串行中進行直接排序

c.修改距離,選取乙個小於上次距離d1的距離d2(d2=[d1/2]);

d.重複a,b,c,直到d=1為止。

**實現:

資料結構 排序

小小總結了下 希望別不記得 排序型別 排序方法 平均時間 最壞時間 最好時間 穩定空間 插入直接插入 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...