排序資料結構總結

2021-10-01 14:12:54 字數 864 閱讀 6756

1.排序的基本概念

排序:給定一組記錄的集合,其相應的關鍵碼分別為,排序是將這些記錄排列成順序為的乙個序列,使得相應的關鍵碼滿足ks1≤ks2≤……≤ksn(稱為公升序)或ks1≥ks2≥……≥ksn(稱為降序)。

正序:待排序序列中的記錄已按關鍵碼排好序。

逆序(反序):待排序序列中記錄的排列順序與排好序的順序正好相反。

趟:在排序過程中,將待排序的記錄序列掃瞄一遍稱為一趟。

通常,一次排序過程需要進行多趟掃瞄才能完成。

2.排序演算法的穩定性:

假定在待排序的記錄集中,存在多個具有相同鍵值的記錄,

若經過排序,這些記錄的相對次序仍然保持不變,

即在原序列中,ki=kj且ri在rj之前,而在排序後的序列中,ri仍在rj之前,則稱這種排序演算法是穩定的;否則稱為不穩定的。

3.排序的分類-根據排序資料在記憶體中還是在外存中:

1.內排序:在排序的整個過程中,待排序的所有記錄全部被放置在記憶體中

排序的分類-根據排序過程中所進行的基本操作分:

基於比較:基本操作——關鍵碼的比較和記錄的移動,其最差時間下限已經被證明為o(nlog2n)。

插入排序

交換排序

選擇排序

歸併排序

不基於比較:根據關鍵碼的分布特徵。比如,桶式排序,基數排序(多關鍵字排序)

分配排序 

桶式排序

基數排序

2. 外排序:由於待排序的記錄個數太多,不能同時放置在記憶體,而需要將一部分記錄放置在記憶體,另一部分記錄放置在外存上,整個排序過程需要在內外存之間多次交換資料才能得到排序的結果

4.排序的儲存結構

從操作角度看,排序是線性結構的一種操作,待排序記錄可以用順序儲存結構或鏈結儲存結構儲存。

排序 資料結構

define maxsize 20 typedef int redtype typedef struct redtype typedef struct sqlist void straightinsertsort sqlist l l.r j 1 l.r 0 void shellsort sqlis...

排序(資料結構)

排序 不穩定排序 口訣 考研複習,情緒不穩定,快 快速 些 希爾 選 選擇 一堆 堆排序 研友 時間複雜度為nlogn的排序 口訣 快 快速 些 希爾 歸 歸併 隊 堆排序 1 include 2 using namespace std 34 排序 5 不穩定排序 口訣 考研複習,情緒不穩定,快 快...

快速排序 資料結構

include 函式宣告 void insertion sort int a,int n 插入排序 void swap int a,int b 交換陣列兩位元素的位置 intmedian int a,int left,int right 將基準放到倒數第二的位置,並返回基準的值 void qsort...