排序基本概念

排序(sort)或分類

     所謂排序,就是要整理文件中的記錄,使之按關鍵字遞增(或遞減)次序排列起來。其確切定義如下:
  輸入:n個記錄R1,R2,…,Rn,其相應的關鍵字分別爲K1,K2,…,Kn
  輸出:Ril,Ri2,…,Rin,使得Ki1≤Ki2≤…≤Kin。(或Ki1≥Ki2≥…≥Kin)。

1.被排序對象--文件
  被排序的對象--文件由一組記錄組成。
  記錄則由若干個數據項(或域)組成。其中有一項可用來標識一個記錄,稱爲關鍵字項。該數據項的值稱爲關鍵字(Key)。
  注意:
     在不易產生混淆時,將關鍵字項簡稱爲關鍵字。

2.排序運算的依據--關鍵字
     用來作排序運算依據的關鍵字,可以是數字類型,也可以是字符類型。
     關鍵字的選取應根據問題的要求而定。
【例】在高考成績統計中將每個考生作爲一個記錄。每條記錄包含准考證號、姓名、各科的分數和總分數等項內容。若要惟一地標識一個考生的記錄,則必須用"准考證號"作爲關鍵字。若要按照考生的總分數排名次,則需用"總分數"作爲關鍵字。

排序的穩定性

     當待排序記錄的關鍵字均不相同時,排序結果是惟一的,否則排序結果不唯一。
     在待排序的文件中,若存在多個關鍵字相同的記錄,經過排序後這些具有相同關鍵字的記錄之間的相對次序保持不變,該排序方法是穩定的;若具有相同關鍵字的記錄之間的相對次序發生變化,則稱這種排序方法是不穩定的
  注意:
     排序算法的穩定性是針對所有輸入實例而言的。即在所有可能的輸入實例中,只要有一個實例使得算法不滿足穩定性要求,則該排序算法就是不穩定的。

排序方法的分類

1.按是否涉及數據的內、外存交換分

     在排序過程中,若整個文件都是放在內存中處理,排序時不涉及數據的內、外存交換,則稱之爲內部排序(簡稱內排序);反之,若排序過程中要進行數據的內、外存交換,則稱之爲外部排序
  注意:
     ① 內排序適用於記錄個數不很多的小文件
     ② 外排序則適用於記錄個數太多,不能一次將其全部記錄放人內存的大文件。

2.按策略劃分內部排序方法
     可以分爲五類:插入排序、選擇排序、交換排序、歸併排序和分配排序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章