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


    JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第1张图片


插入排序

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


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


 

2、算法步骤


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


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



2、动图演示



JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第2张图片


JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第3张图片







3、JavaScript 代码实现



JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第4张图片



4、 Python 代码实现



JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第5张图片


5、Go 代码实现


JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第6张图片




6、Java实现



JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第7张图片



7 Java的另一个版本



JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第8张图片


8、C#实现



JavaScript ,Python,Go,java,C#系列算法之【插入排序】篇_第9张图片



  远方 前端和golang后端微服务开发,架构,团队主要关注前端,客户端,并发响应。现在就职于外企,技术总监,微服务架构。经常活跃在 从零开始自学前端方向、大前端技术、全栈技术群、ionic2混合式app开发等微信群里面做一些分享,希望通过自身的影响让周围的人能够感受多点这个行业的余温,乐于去帮助那些需要解决技术问题的人群。微信请联系:Sen0676  qq邀请入群:525331804  全栈qq群581993430


  近期我将教会你如何自己学习编程技术,如何自己去写一份不错的简历,找到自己想要的工作。梦想从这里开始。结合我自己学习前端找工作的经历来说,如何系统学习、模块化。我将分享我自己如何自学前端,如何在实践中提升开发效率、规范开发流程。

  • 1、前端的自学和提高

  • 2、简历的制作和投递

  • 3、前端面试工作时应该掌握的技能

  • 4、前端面试的一些问题设置

  • 5、现在企业需要前端招聘的人才等