数据结构与算法笔记 —— 十大经典排序及算法的稳定性
生活随笔
收集整理的這篇文章主要介紹了
数据结构与算法笔记 —— 十大经典排序及算法的稳定性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、十大經典排序算法
排序算法是《數據結構與算法》中最基本的算法之一。
排序算法可以分為內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸并排序、快速排序、堆排序、基數排序等。用一張圖概括:
二、排序算法的穩定性
穩定性︰穩定排序算法會讓原本有相等鍵值的紀錄維持相對次序。也就是如果一個排序算法是穩定的,當有兩個相等鍵值的紀錄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) (次序被改變)不穩定排序算法可能會在相等的鍵值中改變紀錄的相對次序,但是穩定排序算法從來不會如此。不穩定排序算法可以被特別地實現為穩定。作這件事情的一個方式是人工擴充鍵值的比較,如此在其他方面相同鍵值的兩個對象間之比較,(比如上面的比較中加入第二個標準:第二個鍵值的大小)就會被決定使用在原先數據次序中的條目,當作一個同分決賽。然而,要記住這種次序通常牽涉到額外的空間負擔。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的数据结构与算法笔记 —— 十大经典排序及算法的稳定性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构与算法笔记(五)——队列(FIF
- 下一篇: 数据结构与算法笔记(六)—— 冒泡排序