各種內部排序的比較

2021-09-30 09:28:08 字數 709 閱讀 2657

各種內部排序按所採用的基本思想(策略)可分為:插入排序、交換排序、選擇排序、歸併排序和基數排序,它們的基本策略分別是:

1  插入排序:依次將無序序列中的乙個記錄,按關鍵字值的大小插入到已排好序乙個子串行的適當位置,直到所有的記錄都插入為止。具體的方法有:直接插入、表插入、2-路插入和shell排序。

2  交換排序:對於待排序記錄序列中的記錄,兩兩比較記錄的關鍵字,並對反序的兩個記錄進行交換,直到整個序列中沒有反序的記錄偶對為止。具體的方法有:氣泡排序、快速排序。

3  選擇排序:不斷地從待排序的記錄序列中選取關鍵字最小的記錄,放在已排好序的序列的最後,直到所有記錄都被選取為止。具體的方法有:簡單選擇排序、堆排序。

4  歸併排序:利用「歸併」技術不斷地對待排序記錄序列中的有序子串行進行合併,直到合併為乙個有序序列為止。

5  基數排序:按待排序記錄的關鍵字的組成成分(「位」)從低到高(或從高到低)進行。每次是按記錄關鍵字某一「位」的值將所有記錄分配到相應的桶中,再按桶的編號依次將記錄進行收集,最後得到乙個有序序列。

選取排序方法的主要考慮因素:

◆  待排序的記錄數目n;

◆ 每個記錄的大小;

◆ 關鍵字的結構及其初始狀態;

◆ 是否要求排序的穩定性;

◆ 語言工具的特性;

◆ 儲存結構的初始條件和要求;

◆ 時間複雜度、空間複雜度和開發工作的複雜程度的平衡點等。

各種內部排序方法的比較和選擇

按平均時間將排序分為四類 1 平方階 o n2 排序 一般稱為簡單排序,例如直接插入 直接選擇和氣泡排序 2 線性對數階 o nlgn 排序 如快速 堆和歸併排序 3 o n1 階排序 是介於0和1之間的常數,即0 1,如希爾排序 4 線性階 o n 排序 如桶 箱和基數排序。各種排序方法比較 簡單...

各種內部排序

include using namespace std void swap int x,int y insertsort void insertsort int a,int n a j 1 temp bubble sort 下沉 void bubblesort1 int a,int n if fla...

各種排序比較

直接插入排序 void insertsort elemtype a,int n 氣泡排序 void bubblesort int a,int n i pos 為下一趟排序作準備 快速排序 int partition elemtype a,int low,int high a low pivot 樞軸...