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

乐搏学院 · · 2406 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

插入排序

 

插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

 

插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。

 

 

2、算法步骤

 

  • 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

 

  • 从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

     

     

     

     

2、动图演示

 

 

wKioL1kUE-yg1vmQAAAyfu8sQrk333.png-wh_50

 

wKioL1kUFCngkJQsAAA_8gbsMB4846.png-wh_50

 

 

 

 

 

 

3、JavaScript 代码实现

 

 

 

wKiom1kUFtaxLWK4AABMWQ9-Cpc756.png-wh_50

 

 

4、 Python 代码实现

 

 

wKiom1kUFwaTEyGmAAA1zIH5R7I570.png-wh_50

 

 

5、Go 代码实现

 

wKioL1kUF0GB7xvsAAA6XY1UZas038.png-wh_50

 

 

 

6、Java实现

 

 

wKiom1kUF3aADlruAAA-sn_eq0U553.png-wh_50

 

 

7 Java的另一个版本

 

 

wKioL1kUF6vzYY9DAABaxtwMb4M357.png-wh_50

 

8、C#实现

 

 

wKioL1kUF-qRpDkSAAA2ptRw6nk285.png-wh_50

登录乐搏学院官网http://www.learnbo.com/

或关注我们的官方微博微信,还有更多惊喜哦~


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:乐搏学院

查看原文:JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2406 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传