天天看點

看動畫學算法之:排序-插入排序

簡介

插入排序的例子

插入排序的java程式

插入排序的時間複雜度

插入排序就是将要排序的元素插入到已經排序的數組中,進而形成一個新的排好序的數組。

這個算法就叫做插入排序。

同樣的,假如我們有一個數組:29,10,14,37,20,25,44,15,怎麼對它進行插入排序呢?

先看一個插入排序的動畫,對它有個直覺的了解:

看動畫學算法之:排序-插入排序

我們來分析一下排序的流程。

八個數字,我們分為7輪。

第一輪,假設29是已經排好序的數組,從第二個元素開始,向排好序的數組插入新的元素。 也就是說向數組[29]插入10。得到[10,29]。

第二輪,[10,29]已經排好序了,選擇數組中的第三個元素14,插入排好序的數組[10,29]。

先将29和14比較,發現29>14,則将29右移一位[10, ,29],然後比較10和14,發現10小于14,那麼将14插入10後面[10,14,29],以此類推。

我們看下java程式怎麼寫:

繼續閱讀