一、排序的基本概念和分類(lèi)
所謂排序,就是使一串記錄,按照其中的某個(gè)或某些關(guān)鍵字的大小,遞增或遞減的排列起來(lái)的操作。排序算法,就是如何使得記錄按照要求排列的方法。
排序的穩(wěn)定性:
經(jīng)過(guò)某種排序后,如果兩個(gè)記錄序號(hào)同等,且兩者在原無(wú)序記錄中的先后秩序依然保持不變,則稱(chēng)所使用的排序方法是穩(wěn)定的,反之是不穩(wěn)定的。
內(nèi)排序和外排序
內(nèi)排序:排序過(guò)程中,待排序的所有記錄全部放在內(nèi)存中
外排序:排序過(guò)程中,使用到了外部存儲(chǔ)。
通常討論的都是內(nèi)排序。
影響內(nèi)排序算法性能的三個(gè)因素:
時(shí)間復(fù)雜度:即時(shí)間性能,高效率的排序算法應(yīng)該是具有盡可能少的關(guān)鍵字比較次數(shù)和記錄的移動(dòng)次數(shù)
空間復(fù)雜度:主要是執(zhí)行算法所需要的輔助空間,越少越好。
算法復(fù)雜性。主要是指代碼的復(fù)雜性。
根據(jù)排序過(guò)程中借助的主要操作,可把內(nèi)排序分為:
插入排序
交換排序
選擇排序
歸并排序
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式