一、什么叫做插入排序法

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

二、核心

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

四、代码

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--}
}

转载于:https://www.cnblogs.com/mp-0518/p/11440532.html

【JavaScript算法】---插入排序(转载自我的老师 Alley-巷子)相关推荐

  1. JavaScript算法——插入排序

    一.概念 **插入排序(Insertion-Sort)**的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 这里需要 ...

  2. JavaScript算法相关

    1. 排序 1.1.冒泡排序 每一轮比较,从左至右交换相邻,每轮结束,最后一个为最大 下一轮,需要比较的个数 - 1 j < len - i (范围动态缩小) 共 len - 1 轮比较 fun ...

  3. javascript算法汇总(持续更新中)

    1. 线性查找 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset ...

  4. 数据结构与算法笔记(青岛大学王卓老师视频)

    写在前面的话: 因为在学习数据结构之前,学习过一年的算法,所以有一些基础,一些我觉得 没必要的代码或知识就没写上,记得多是一些知识点,写的可能对于别人来说 很难接受,望谅解.我学习算法是在Acwing ...

  5. Algorithm:C++语言实现之内排序、外排序相关算法(插入排序 、锦标赛排序、归并排序)

    Algorithm:C++语言实现之内排序.外排序相关算法(插入排序 .锦标赛排序.归并排序) 目录 一.内排序 1.插入排序 2.锦标赛排序 3.归并排序 二.外排序 1.过程 一.内排序 1.插入 ...

  6. JavaScript算法与数据结构——字典详解

    字典是一种以键-值对的形式存储数据的数据结构,接下来我们将使用JavaScript实现字典数据结构. 1.定义字典类 由于比较字典数据结构比较简单,就直接上代码好了. class Dictionary ...

  7. oCPC实践录 | 广告算法工程师的自我修养

    ​这是AITBOOK的第31篇原创文章 2019年即将过去,2020年马上到来,在这个时候做一下总结,发一下展望是最合适不过的.2019年互联网广告的发展已有人总结为令人失望,2020年估计也好不到哪 ...

  8. 算法学习--排序算法--插入排序

    算法学习--排序算法--插入排序 插入排序算法 代码实现 插入排序算法 插入排序(Insertion sort)是一种简单直观且稳定的排序算法.如果有一个已经有序的数据序列,要求在这个已经排好的数据序 ...

  9. JavaScript 算法与数据结构 之 正则表达式

    JavaScript 算法与数据结构 之 正则表达式 test()测试方法 使用test()方法返回的是布尔值. 使用测试方法 正则表达式用于匹配指定的字符串. test()方法可以匹配字符串中的内容 ...

  10. Java排序算法——插入排序(Insertion Sort)

    之前总结了交换排序的冒泡排序与选择排序的简单选择排序,这次我们来看看插入排序的简单插入排序~ 往期传送门: 冒泡排序: Java排序算法--冒泡排序(Bubble Sort)https://blog. ...

最新文章

  1. 浅谈https\ssl\数字证书
  2. CF605E-Intergalaxy Trips【期望dp】
  3. java中生成pdf文件,java 中生成pdf 文件
  4. linux lamp实验报告,我的LAMP过程
  5. 高性能相关----爬虫
  6. mysql的学生信息建表语句_SQL语句创建学生信息数据库表的示例
  7. easydarwin 安装_EasyDarwin流媒体服务器
  8. 软件设计模式(持续更新)
  9. SerialVersionUID [Java]
  10. 使用PS软件修改图片的尺寸
  11. 关于聚光灯各种衰减系数的尝试体会聚光灯的效果
  12. 今天发布《看图玩儿》看图软件
  13. 基于Java Web的航空售票管理系统(酒店管理系统,图书管理系统、学生管理系统)
  14. 建设一个网站需要多少钱?
  15. 【建行读书日海报活动】领999元书券
  16. rust快速升级墙指令_外服一键升级指令是啥呀
  17. 数据库第八周实验——第五章课后题
  18. 二十八:微信公众帐号开发-应用实例之音乐搜索
  19. Win32绘图总结篇(点、直线、折线、贝塞尔曲线、矩形、椭圆、圆弧、弓形、扇形、多边形等)
  20. 驱动-MDL内存映射

热门文章

  1. Kafka 生产者详解
  2. Java总结IO之总集篇
  3. 校验非空的注解@NotNull怎么取得自定义的message
  4. 【OpenGL ES】EGL+FBO离屏渲染
  5. Android SDK是什么意思?
  6. 实战 SQL:实现百度、高德等地图中的地铁换乘线路查询
  7. win10 卸载软件 清除注册表 Revo Uninstaller Pro
  8. 怎样在Word添加页码?经验干货!word如何插入页码?
  9. oracle shutdown 很慢,oracle shutdown immediate等待时间很长之思考
  10. 可爱的猫咪怎么画?超详细教你如何绘画可爱的猫咪!