2012-06-08 83 views
-3

如何判斷算法是否穩定呢?..C++算法的穩定性

此外,請問這個算法桶排序比較歸併排序,快速排序,冒泡排序,並插入排序 ?

+3

你如何定義* *穩定?穩定在'stable_sort'中? – Naveen

+0

它被稱爲[桶排序](http://en.wikipedia.org/wiki/Bucket_sort)。 – bdares

+0

這正是我的任務在這些確切的話中所要求的。因此我的困惑:(但感謝參考鬥類,我會看看。 – forthewinwin

回答

1

乍一看,如果你的隊列是FIFO,那麼它是穩定的。不過,我認爲在課堂或其他作業中會有一些幫助你做出更堅定決心的背景。

維基百科:

穩定性 穩定排序算法保持的記錄同鍵的相對順序。如果所有的鍵都不同,那麼這個區別就沒有必要了。但是,如果有相同的密鑰,那麼如果每當有兩個記錄(假設R和S)具有相同的密鑰,並且R在原始列表中的S之前出現,則排序算法是穩定的,則R將總是出現在S中的S之前排序列表。當相同的元素不可區分時,比如整數,或者更一般地說,任何數據中的整個元素都是關鍵,穩定性不是問題。然而,假設數的下列對要通過它們的第一部件進行排序:

http://en.wikipedia.org/wiki/Sorting_algorithm#Stability

至於比較其他算法。維基百科上有一個簡潔的條目:

http://en.wikipedia.org/wiki/Bucket_sort#Comparison_with_other_sorting_algorithms

另外:https://stackoverflow.com/a/7341355/1416221