一、排序的基本概念和分類
所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序算法,就是如何使得記錄按照要求排列的方法。
排序的穩(wěn)定性:
經過某種排序后,如果兩個記錄序號同等,且兩者在原無序記錄中的先后秩序依然保持不變,則稱所使用的排序方法是穩(wěn)定的,反之是不穩(wěn)定的。
內排序和外排序
內排序:排序過程中,待排序的所有記錄全部放在內存中
外排序:排序過程中,使用到了外部存儲。
通常討論的都是內排序。
影響內排序算法性能的三個因素:
時間復雜度:即時間性能,高效率的排序算法應該是具有盡可能少的關鍵字比較次數和記錄的移動次數
空間復雜度:主要是執(zhí)行算法所需要的輔助空間,越少越好。
算法復雜性。主要是指代碼的復雜性。
根據排序過程中借助的主要操作,可把內排序分為:
插入排序
交換排序
選擇排序
歸并排序