排序 排序的基本概念

2022-08-18 01:12:12 字數 1563 閱讀 9031

1,排序的一般定義:

1,排序是計算機內經常進行的一種操作,其目的是將一組「無序」的資料元素調整為「有序」的資料元素;

2,無序到有序就是排序;

2,排序的數學定義:

1,假設含 n 個資料元素序列為, 其相應的關鍵字序列為 ,這些關鍵字相互之間可以進行比較,即:在它們之間存在著這樣乙個關係  kp1 <= kp2 <= ... <= kpn,  按此固有關係將上式記錄序列重新排列為  的操作稱為排序。

3,排序的穩定性:

1,如果在序列中有兩個資料元素 r[i] 和 r[j],它們的關鍵字 k[i] == k[j],且在排序之前,物件 r[i] 排在 r[j] 前面;如果在排序之後,物件 r[i] 仍在物件 r[j] 的前面,則稱這個排序方法是穩定的,否則稱這個排序方法是不穩定的;

4,多關鍵字排序:

1,排序時需要比較的關鍵字多於乙個:

1,排序結果首先按關鍵字 1 進行排序;

2,當關鍵字 1 相同時按關鍵字 2 進行排序;

3,當關鍵字 n - 1 相同時按關鍵字 n 進行排序;

(4),關鍵字之間有優先順序;

5,多關鍵字排序是否比單關鍵字排序更複雜?

1,對於多關鍵字排序,只需要在比較操作時同時考慮多個關鍵字即可;

2,只要定義好了大小關係,就排序演算法而言,多關鍵字排序和單關鍵字排序本質沒有任何差異;

3,後續課程只考慮單關鍵字排序;

6,多關鍵字比較的**實現:

1,利用短路原則;

7,排序中的關鍵操作:

1,比較:

1,任意兩個資料元素通過比較操作確定先後次序;

2,交換:

1,資料元素之間需要交換才能得到預期效果(無序變有序);

8,排序的審判:

1,時間效能:

1,關鍵效能差異體現在比較和交換的數量;

2,輔助儲存空間:

1,為完成排序操作需要的額外的儲存空間:

1,嵌入式開發,空間資源受限;

2,必要時可以「空間換時間」;

3,演算法的實現複雜性:

1,過於複雜的排序法可能影響可讀性和可維護性;

9,dtlib 中的排序類設計:

1,定義排序類,類中實現常用的各種各樣排序方法,專案中直接只用類的成員函式就可以排序;

2,排序類繼承自 object;

3,建構函式、拷貝建構函式以及賦值操作符全部定義為私有的,排序類不可能有物件;

4,將不同排序方法實現為類的靜態成員函式來使用;

10,小結:

1,排序是資料元素從無序到有序的過程;

2,排序具有穩定性,是選擇排序演算法的(主要)因素之一;

3,比較和交換是排序的基本操作;

4,多關鍵字排序與單關鍵字排序無本質區別;

1,比較沒本質區別,所以排序也沒本質區別;

5,排序的時間效能是區分排序演算法好壞的主要因素;

排序的基本概念

排序是資料結構的一種重要運算。本章的5.1節至5.6節介紹內排序的各種方法,5.7節介紹外排序方法。此外,堆排序也是一種典型的選擇排序,有關堆排序的演算法將在第8章中介紹。5.1基本概念 在討論排序的概念之前,首先引入 排序碼 的概念。排序碼是結點中的乙個或多個字段,其值作為排序運算中的依據。排序碼...

排序的基本概念

排序 給定一組記錄的集合,其相應的關鍵碼分別為,排序是將這些記錄排列成順序為的乙個序列,使得相應的關鍵碼滿足ks1 ks2 ksn 稱為公升序 或ks1 ks2 ksn 稱為降序 正序 待排序序列中的記錄已按關鍵碼排好序。逆序 反序 待排序序列中記錄的排列順序與排好序的順序正好相反。趟 在排序過程中...

排序的基本概念

排序是資料結構的一種重要運算。本章的5.1節至5.6節介紹內排序的各種方法,5.7節介紹外排序方法。此外,堆排序也是一種典型的選擇排序,有關堆排序的演算法將在第8章中介紹。5.1基本概念 在討論排序的概念之前,首先引入 排序碼 的概念。排序碼是結點中的乙個或多個字段,其值作為排序運算中的依據。排序碼...