資料結構之排序總結

2022-03-19 01:30:16 字數 872 閱讀 5237

排序是把乙個記錄(在排序中把資料元素稱為記錄)集合或序列重新排列成按記錄的某個資料項值遞增(或遞減)的序列。

作為排序依據的資料項稱為「排序項」,也稱為記錄的關鍵碼(keyword)。關鍵碼分為主關鍵碼(primary keyword)和次關鍵碼(secondary keyword)。一般地,若關鍵碼是主關鍵碼,則對於任意待排序的序列,經排序後得到的結果是唯一的;若關鍵碼是次關鍵碼,排序的結果不一定唯一,這是因為待排序的序列中可能存在具有相同關鍵碼值的記錄。此時,這些記錄在排序結果中,它們之間的位置關係與排序前不一定保持一致。如果使用某個排序方法對任意的記錄序列按關鍵碼進行排序,相同關鍵碼值的記錄之間的位置關係與排序前一致,則稱此排序方法是穩定的;如果不一致,則稱此排序方法是不穩定的。

直接插入排序(direct insert sort)的基本思想是:順序地將待排序的記錄按其關鍵碼的大小插入到已排序的記錄子串行的適當位置。子串行的記錄個數從1開始逐漸增大,當子串行的記錄個數與順序表中的記錄個數相同時排序完畢。

這個方法很類似於上學的時候排座位,老師叫一名最低的學生,坐第一排第一桌,然後依次叫。。。。。這個關鍵碼就是學生的身高,它是在整個群體中,視關鍵碼而定。

下面給出乙個例項,例如對陣列 進行排序。首先將第乙個元素,也就是32,看作是乙個有序的序列。可以這樣表示 (裡面那個豎線分割了有序序列和待排序的陣列)。接下來,取待排序陣列中的第乙個元素,也就是12,因為它比32小,所以將它放到32的前面,於是有這樣的表示 。基本過程就是這樣,如此反覆下去,知道待排序陣列中的資料,都插入到有序序列的合適位置,排序就完成了。

對上面那個例子排序的全過程如下:

=> => => => =>

待續

資料結構之排序演算法總結

時間複雜度比較 排序演算法名稱 時間複雜度 氣泡排序 比較排序演算法 o n n 選擇排序 比較排序演算法 o n n 插入排序 比較排序演算法 o n n 希爾排序 比較排序演算法 o nlog2n 歸併排序 比較排序演算法 o nlogn 堆排序 比較排序演算法 o logn 快速排序 o nl...

資料結構排序 總結

一 排序的基本概念 假設含有n個記錄的序列為,其相應的關鍵字為,需確定1,2,3 n的一種排列p1,p2,pn使其相應的關鍵字滿足kp1 kp2 kp3 kpn非遞減 或非遞增 關係,及時的序列稱為乙個按關鍵字有序的序列,這樣的操作就稱為排序。二 排序的分類 1 內排序和外排序 按照排序過程中涉及的...

資料結構之排序演算法特點總結

1.插入與氣泡排序的速度較慢,但是當參加排序的元素區域性或整體有序時,能達到較快的速度,這時對於快速排序來說,反而會變慢 1.1對初始狀態為遞增序列的表按遞增順序排序,最省時間的是插入演算法 1.2分別採用堆排序,快速排序,氣泡排序和歸併排序,對初態為有序的表,則最省時間的是冒泡演算法,1.3對冒泡...