標籤:java演算法 javascript 演算法 python演算法 go演算法 c#系列演算法之【插入排序】篇
常見的內部排序演算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸併排序、快速排序、堆排序、基數排序等。用一張圖概括:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/95/53/wKioL1kUE5LRymxfAAHcPIbdiTU968.png-wh_500x0-wm_3-wmp_4-s_2575929143.png" title="21.png" alt="wKioL1kUE5LRymxfAAHcPIbdiTU968.png-wh_50" />
插入排序
插入排序(英語:Insertion Sort)是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到O(1)的額外空間的排序),因而在從後向前掃描過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。
插入排序和冒泡排序一樣,也有一種最佳化演算法,叫做拆半插入。
2、演算法步驟
2、動圖示範
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/95/53/wKioL1kUE-yg1vmQAAAyfu8sQrk333.png-wh_500x0-wm_3-wmp_4-s_818173473.png" title="22.png" alt="wKioL1kUE-yg1vmQAAAyfu8sQrk333.png-wh_50" />
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/95/53/wKioL1kUFCngkJQsAAA_8gbsMB4846.png-wh_500x0-wm_3-wmp_4-s_373814632.png" title="23.png" alt="wKioL1kUFCngkJQsAAA_8gbsMB4846.png-wh_50" />
3、JavaScript 代碼實現
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/95/54/wKiom1kUFtaxLWK4AABMWQ9-Cpc756.png-wh_500x0-wm_3-wmp_4-s_4012934884.png" title="31.png" alt="wKiom1kUFtaxLWK4AABMWQ9-Cpc756.png-wh_50" />
4、 Python 代碼實現
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/95/54/wKiom1kUFwaTEyGmAAA1zIH5R7I570.png-wh_500x0-wm_3-wmp_4-s_2937197305.png" title="32.png" alt="wKiom1kUFwaTEyGmAAA1zIH5R7I570.png-wh_50" />
5、Go 代碼實現
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/95/54/wKioL1kUF0GB7xvsAAA6XY1UZas038.png-wh_500x0-wm_3-wmp_4-s_985027382.png" title="33.png" alt="wKioL1kUF0GB7xvsAAA6XY1UZas038.png-wh_50" />
6、Java實現
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/95/54/wKiom1kUF3aADlruAAA-sn_eq0U553.png-wh_500x0-wm_3-wmp_4-s_70738832.png" title="34.png" alt="wKiom1kUF3aADlruAAA-sn_eq0U553.png-wh_50" />
7 Java的另一個版本
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/95/54/wKioL1kUF6vzYY9DAABaxtwMb4M357.png-wh_500x0-wm_3-wmp_4-s_3295185985.png" title="36.png" alt="wKioL1kUF6vzYY9DAABaxtwMb4M357.png-wh_50" />
8、C#實現
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/95/54/wKioL1kUF-qRpDkSAAA2ptRw6nk285.png-wh_500x0-wm_3-wmp_4-s_163974096.png" title="37.png" alt="wKioL1kUF-qRpDkSAAA2ptRw6nk285.png-wh_50" />
遠方 前端和golang後端微服務開發,架構,團隊主要關注前端,用戶端,並發響應。現在就職於外企,技術總監,微服務架構。經常活躍在 從零開始自學前端方向、大前端技術、全棧技術群、ionic2混合式app開發等群裡面做一些分享,希望通過自身的影響讓周圍的人能夠感受多點這個行業的餘溫,樂於去協助那些需要解決技術問題的人群。請聯絡:Sen0676 qq邀請入群:525331804 全棧qq群:581993430
近期我將教會你如何自己學習編程技術,如何自己去寫一份不錯的簡曆,找到自己想要的工作。夢想從這裡開始。結合我自己學習前端找工作的經曆來說,如何系統學習、模組化。我將分享我自己如何自學前端,如何在實踐中提升開發效率、規範開發流程。
1、前端的自學和提高
2、簡曆的製作和投遞
3、前端面試工作時應該掌握的技能
4、前端面試的一些問題設定
5、現在企業需要前端招聘的人才等
本文出自 “知乎技術” 部落格,請務必保留此出處http://liuzhiying.blog.51cto.com/5850988/1924582
JavaScript ,Python,Go,java,C#系列演算法之【插入排序】篇