
*****
## 排序算法
排序算法太多了,有很多可能你連名字都沒聽說過,比如猴子排序、睡眠排序、面條排序等。我只講眾多排序算法中的一小撮,也是最經典的、最常用的:冒泡排序、插入排序、選擇排序、歸并排序、快速排序、希爾排序
### 如何分析一個“排序算法”?
學習排序算法,我們除了學習它的算法原理、代碼實現之外,更重要的是要學會如何評價、分析一個排序算法。那分析一個排序算法,要從哪幾個方面入手呢?
#### 1.排序算法的執行效率
對于排序算法執行效率的分析,我們一般會從這幾個方面來衡量:
- 1.時間復雜度
- 2.比較次數和交換(或移動)次數
#### 2. 排序算法的內存消耗
原地排序算法,就是特指空間復雜度是 O(1) 的排序算法
#### 3.排序算法的穩定性
僅僅用執行效率和內存消耗來衡量排序算法的好壞是不夠的。針對排序算法,我們還有一個重要的度量指標,穩定性。這個概念是說,如果待排序的序列中存在值相等的元素,經過排序之后,相等元素之間原有的先后順序不變。