基本排序演算法的穩定性分析

2021-09-27 16:38:03 字數 367 閱讀 2490

氣泡排序的核心思想為相鄰元素之間的兩兩比較,相同大小元素不會改變相對位置,所有氣泡排序為穩定的。

選擇排序的核心思想是每次選擇剩下元素最小值與起始元素交換,如果最小值元素和起始元素的中間有元素和起始元素相等,交換後,這兩個相等元素的相對位置發生了變化,所以選擇排序為不穩定的。如2,6,3,2,8,1.如果第乙個元素2和1交換了,將會變得不穩定。

插入排序,每次在前面排好序的基礎上末尾插入,首先和前面最後乙個元素比較大小,然後乙個乙個向前順序比較,如果比前面的小,則交換,依次向前比較(類似於相鄰元素兩兩比較)。實質上也是相鄰兩個元素的順序比較大小。插入排序也是穩定的。

總結:如果排序的演算法最終設計的是直接或者間接的相鄰兩個元素的順序比較,則排序演算法是穩定的;否則,不穩定。

排序演算法穩定性分析

首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前2個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。在簡單形式化一下,如果ai aj,ai原來在位置前,排序後ai還是要在aj位置前。其次,說一下穩定性的好處。排序演算法如果是穩定的,那麼從乙個鍵上排序,然後再從另乙個...

排序演算法穩定性分析

氣泡排序 氣泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的 如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,...

常見排序演算法穩定性分析

這幾天筆試了好幾次了,連續碰到乙個關於常見排序演算法穩定性判別的問題,往往還是多選,對於我以及和我一樣拿不準的同學可不是乙個能輕易下結論的題目,當然如果你筆試之前已經記住了資料結構書上哪些是穩定的,哪些不是穩定的,做起來應該可以輕鬆搞定。本文是針對老是記不住這個或者想真正明白到底為什麼是穩定或者不穩...