第八章 排序演算法
阿新 • • 發佈:2021-10-03
考試要求:
理解內排序和外排序的區別;
掌握排序的穩定性;
對直接插入排序、氣泡排序、簡單選擇排序、Shell排序、快速排序、堆排序、歸併排序、基數排序這些演算法,掌握其在時間複雜度、空間複雜度以及是否穩定等方面的特點;
瞭解K路歸併的外排序演算法;
具有在不同的應用需求下,能夠根據各種排序演算法特點選擇合適排序演算法的能力。
1.排序的定義,包括內排序和外排序
(1)排序定義:排序,就是重新排列表中的元素,使表中的元素滿足按關鍵字排序的過程。
(2)內排序:是指在排序期間元素全部存放在記憶體中的排序。
(3)外排序:是指在排序期間元素無法全部同時存放在記憶體中,必須在排序的過程中根據要求不斷地在內、外存之間移動的排序。
2.排序的穩定性定義
演算法的穩定性:若待排序表中有兩個元素Ri和Rj,其對應的關鍵字相同即keyi = keyj,且在排序前Ri在Rj前面,若使用某一種排序演算法後,Ri仍在Rj前面,則稱這個演算法是穩定的,否則稱這個演算法是不穩定的。
3.插入排序
(1)直接插入排序
(2)Shell排序
4.交換排序
(1)氣泡排序
(2)快速排序
5.選擇排序
(1)簡單選擇排序
(2)堆排序
6.歸併排序
7.基數排序
8.K路歸併排序的排序過程
考試要求
理解內排序和外排序的區別;
掌握排序的穩定性;
對直接插入排序、氣泡排序、簡單選擇排序、Shell排序、快速排序、堆排序、歸併排序、基數排序這些演算法,掌握其在時間複雜度、空間複雜度以及是否穩定等方面的特點;
瞭解K路歸併的外排序演算法;
具有在不同的應用需求下,能夠根據各種排序演算法特點選擇合適排序演算法的能力。