資料結構與演算法(排序演算法穩定性)

2021-10-02 15:27:50 字數 630 閱讀 7072

排序演算法(英語:sorting algorithm)是一種能將一串資料依照特定順序進行排列的一種演算法。

**穩定性:**穩定排序演算法會讓原本有相等鍵值的記錄維持相對次序,也就是如果乙個排序演算法是穩定的,當有兩個相等鍵值的記錄r和s,且在原本的列表種r出現在s之前,在排序過的列表中r也會在s之前。

當相等的元素是無法分辨的,比如像是整數,穩定性並不是乙個問題。然而,假設以下的數對將要以他們的第乙個數字來排序。

(4,1) ,(3,1),(3,7),(5,6)

在這個情況下,有可能產生兩種不同的結果,乙個是讓相等鍵值的記錄維持相對的次序,而另外乙個則沒有:

(3,1),(3,7),(4,1) ,(5,6) (維持次序)

(3,7),(3,1),(4,1), (5,6) (次序被改變)

不穩定排序演算法可能會在相等的鍵值中改變記錄的相對次序,但是穩定排序演算法從來不會如此,不穩定排序演算法可以被特別的實現為穩定。做這件事情的乙個方式是人工擴充鍵值的比較,如此在其他方面相同鍵值的兩個物件之間比較,(比如上面的比較中加入第二個標準,第二個鍵值的大小)就會被決定使用在原先資料次序中的條目,當作乙個同分決賽。然而要記住這種次序通常牽涉到額外的空間負擔。

排序演算法穩定性

學習中,有個問題叫做排序演算法穩定性 若待排序的序列中,存在多個具有相同關鍵字的記錄,經過排序,這些記錄的相對次序保持不變,則稱該演算法是穩定的 若經排序後,記錄的相對 次序發生了改變,則稱該演算法是不穩定的。假定在待排序的記錄序列中,存在多個具有相同鍵值的記錄,若經過排序,這些記錄的相對次序保持不...

排序演算法穩定性

快速排序 希爾排序 堆排序 直接選擇排序不是穩定的排序演算法,而基數排序 氣泡排序 直接插入排序 折半插入排序 歸併排序是穩定的排序演算法 首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前2個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。在簡單形式化一下,如果ai...

排序演算法穩定性

排序演算法穩定性 概念 假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,ri rj,且ri在rj之前,而在排序後的序列中,ri仍在rj之前,則稱這種排序演算法是穩定的 否則稱為不穩定的。排序的穩定性是指如果在排序的序列中,存在前後相同的...