ITPub博客

首页 > 大数据 > 可视化 > JavaScript ,Python,Go,java,C#系列算法之【插入排序】

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

可视化 作者:大佬111 时间:2018-09-19 10:04:15 0 删除 编辑


 常见的内部排序算法有: 插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序 等。用一张图概括:


     wKioL1kUE5LRymxfAAHcPIbdiTU968.png-wh_50


插入排序

插入排序 (英语: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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31548646/viewspace-2214449/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-08-03

  • 博文量
    28
  • 访问量
    10847