JavaScript ,Python,Go,java,C#系列演算法之【插入排序】

大佬111發表於2018-09-19


 常見的內部排序演算法有: 插入排序、希爾排序、選擇排序、氣泡排序、歸併排序、快速排序、堆排序、基數排序 等。用一張圖概括:



插入排序

插入排序 (英語:Insertion Sort)是一種簡單直觀的排序演算法。它的工作原理是透過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。 插入排序 在實現上,通常採用in-place排序(即只需用到O(1)的額外空間的排序),因而在從後向前掃描過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。


插入排序和氣泡排序一樣,也有一種最佳化演算法,叫做拆半插入。


 

2、演算法步驟


  • 將第一待排序序列第一個元素看做一個有序序列,把第二個元素到最後一個元素當成是未排序序列。


  • 從頭到尾依次掃描未排序序列,將掃描到的每個元素插入有序序列的適當位置。(如果待插入的元素與有序序列中的某個元素相等,則將待插入元素插入到相等元素的後面。)



2、動圖演示











3、JavaScript 程式碼實現





4、 Python 程式碼實現




5、Go 程式碼實現





6、Java實現





7 Java的另一個版本




8、C#實現




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548646/viewspace-2214449/,如需轉載,請註明出處,否則將追究法律責任。

相關文章