一)排序的定義
所謂排序,就是要整理檔案中的記錄,使之按關鍵字遞增(或遞減)次序排列起來。其確切定義如下:
輸入:n個記錄r1,r2,…,rn,其相應的關鍵字分別為k1,k2,…,kn。
輸出:ril,ri2,…,rin,使得ki1≤ki2≤…≤kin。(或ki1≥ki2≥…≥kin)。
二)排序的分類
1.按是否涉及資料的內、外存交換分
在排序過程中,若整個檔案都是放在記憶體中處理,排序時不涉及資料的內、外存交換,則稱之為內部排序(簡稱內排序);反之,若排序過程中要進行資料的內、外存交換,則稱之為外部排序。
注意:內排序適用於記錄個數不很多的小檔案
外排序則適用於記錄個數太多,不能一次將其全部記錄放人記憶體的大檔案。
2.按策略劃分內部排序方法
可以分為五類:插入排序、選擇排序、交換排序、歸併排序和分配排序。
三)具體的排序方法(待補充)
插入排序:直接插入排序、折半插入排序、希爾排序
交換排序:氣泡排序、快速排序
選擇排序:簡單選擇排序、堆排序
歸併排序:歸併排序
四)排序演算法的評價
1.評價排序演算法好壞的標準
評價排序演算法好壞的標準主要有兩條:
① 執行時間和所需的輔助空間
② 演算法本身的複雜程度
2.排序演算法的空間複雜度
若排序演算法所需的輔助空間並不依賴於問題的規模n,即輔助空間是o(1),則稱之為就地排序(in-placesou)。
非就地排序一般要求的輔助空間為o(n)。
3.排序演算法的時間開銷
大多數排序演算法的時間開銷主要是關鍵字之間的比較和記錄的移動。有的排序演算法其執行時間不僅依賴於問題的規模,還取決於輸入例項中資料的狀態。
01 基礎知識
程序概念 作業系統中所有執行中的任務通常是乙個程式,每個執行中的程式就是乙個程序 process 當乙個程式執行時,內部可能包含了多個順序執行流,每個順序執行流就是乙個執行緒。程序是處於執行過程中的程式,並且具有一定的獨立功能,程序是系統進行資源分配和排程的乙個獨立單位。程序三個特性 2.動態性 程...
01 基礎知識
1 計算機基礎 cpu 相當於人的大腦,用於計算。記憶體 儲存資料,4g,8g,16g,32g,成本高,斷電即消失。硬碟 1t,固態硬碟,機械硬碟,儲存資料,應該長久保持資料,重要檔案,小電影等等。2 編譯型語言和解釋型語言區別 編譯型 一次性將所有程式編譯成二進位制檔案。缺點 開發效率低,不能跨平...
彙編01 基礎知識
教材 80x86組合語言程式設計教程 楊季文 錢培德等編著 清華大學出版社 第一章 基礎知識 掌握的兩個要點 一是各進製的轉換,而是資料 非資料的表示和資料的型別 一 各進製的轉換 1 二進位制數和十六進製制數 在計算機裡,通常用數字後面跟乙個英文本母表示該數的數字 十進位制數一般用d,二進位制數用...