一、什么叫做插入排序法

  有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法

二、核心

  插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。 插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中
 
插入排序的原理其实很好理解,可以类比选择排序。选择排序时在两个空间进行,等于说每次从旧的空间选出最值放到新的空间,而插入排序则是在同一空间进行
 
三、思路
  从第二位数字开始,每一个数字都试图跟它的前一个比较并做交换,并重复这个动作。直到前一个数字不存在或比它小或者相等的时候停下来
 
                                                                         

四、代码

var arr = [19,3,22,7,55,9,3,8]
var temp;
for(var i=1;i<arr.length;i++){
var index = i;
while(index-1>=0 && arr[index - 1] >arr[index]){
[arr[index],arr[index - 1]] = [arr[index - 1],arr[index]] index--
}
} for(var i=1;i<arr.length;i++){
var index = i;
while(index-1>=0 && arr[index - 1] >arr[index]){
temp = arr[index];
arr[index] = arr[index-1];
arr[index-1] = temp; index--
}
}

最新文章

  1. [python]设计模式
  2. AWS CloudFormation Template
  3. Node.js入门:包结构
  4. Context的使用(转)
  5. 使用paramiko进行打包操作
  6. POJ1423 - Big Number(Stirling公式)
  7. Android调用系统相机和文件浏览器
  8. 初学者学Java设计模式(一)------单例设计模式
  9. 免费UI框架推荐--Charisma UI
  10. EFCore数据库迁移命令整理
  11. jQuery系列 第七章 jQuery框架DOM操作
  12. Oracle 常用Sql 语句
  13. C# Linq to Entity 多条件 OR查询
  14. 【转】jQuery 的 ajax 方法,返回结果 readyState=4 并且 status=200 时,还进 error 方法
  15. [Localization] MobileNet with SSD
  16. 安装python3.7和PyCharm专业版
  17. c++——引用的使用
  18. 2012年第三届蓝桥杯Java本科组省赛试题解析
  19. Codeforces977D ---Divide by three, multiply by two 深搜+map存出现的数
  20. Uploading File using Ajax and receiving binary data in Asp.net (C#)[转]

热门文章

  1. Windoows窗口程序一
  2. OSX下git diff/merge 可视化工具 P4Merge 环境配置步骤
  3. BaaS后端即服务 - 概念篇
  4. Runtime是什么?
  5. linux -- at命令
  6. centos查看启动时间
  7. 【Java集合的详细研究7】Set和List 的关系与区别
  8. u3d调用c++ dll的DllNotFoundExceion 问题
  9. 如何让View一直沿z轴旋转
  10. Oracle之唯一性约束(UNIQUE Constraint)使用方法具体解释