InsertionSort(插入排序)

引言

打撲克牌的時候,須要整理本身的牌,如何整理呢?就是拿到一張牌,找到一個合適的位置插入。這個原理和插入排序是同樣的。舉個例子,對{5 3 8 6 4} 這個無序序列進行簡單插入排序,首先假設第一個數的位置是已排序的,無需整理。而後3要排在5前面,把5後移一位。變成{3 5 8 6 4},而後8保持不動,6插在8前面,8後移一位。4插在5前面,從5開始都向後移一位。排序

複雜度

簡單插入排序的時間複雜度是O(n^2)。圖片

穩定性分析

插入排序是在一個已經有序的小序列的基礎上,一次插入一個元素。固然,剛開始這個有序的小序列只有1個元素,就是第一個元素。比較是從有序序列的末尾開 始,也就是想要插入的元素和已經有序的最大者開始比起,若是比它大則直接插入在其後面,不然一直往前找直到找到它該插入的位置。若是遇見一個和插入元素相等的,那麼插入元素把想插入的元素放在相等元素的後面。因此,相等元素的先後順序沒有改變,從原無序序列出去的順序就是排好序後的順序,因此插入排序是穩定的。it

代碼

插入排序

相關文章
相關標籤/搜索