排序演算法中的穩定性 排序中比較容易忽略的東西

2021-10-08 20:29:26 字數 732 閱讀 2373

如果乙個排序演算法能夠保留陣列中重複元素的相對位置則可以被稱為穩定的

《演算法》第四版

在進行排序的時候,難免會出現相同元素的值。比如:[7, 4, 4, 3, 8, 9]對該陣列進行排序,使用不同的排序演算法都會變得有序,但有些演算法不能保證數列中兩個四的相對位置,我將[7, 4, 4, 3, 8, 9]數列中第乙個4,命名為a,第二個四命名為b, 陣列 [7, a, b, 3, 8, 9]。經過排序演算法後,如果a,b的相對位置(即排序後a還在b的前面)沒有發生改變,則稱該排序演算法是穩定的,否則是不穩定的。

來看看那處理這段資料,目前給出的是按照時間大小排序

地名時間

a9:00

b10:00

c11:00

b12: 00

假如我們現在採用不穩定的演算法,按照地名進行排序。

地名時間

a9:00

b12: 00

b10:00

c11:00

發現觀察地名b的時間排序又亂了,如果採用的是穩定演算法

地名時間

a9:00

b10:00

b12: 00

c11:00

那就解決這個問題了。

當我們需要穩定性時,我們才關注穩定性,如果不使用,穩定性對於我們而言是可忽略。

穩定性演算法

穩定的插入,歸併

不穩定的

希爾,快速排序,堆排序,選擇排序

排序演算法穩定性

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

排序演算法穩定性

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

排序演算法穩定性

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