插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入,从而达到排序的效果。

算法步骤:
1、将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
2、从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><script>function insertSort(array) {const len = array.length;let current;let prev;for (let i = 1; i < len; i++) {current = array[i];prev = i - 1;while (prev >= 0 && array[prev] > current) {array[prev + 1] = array[prev];prev--;}array[prev + 1] = current;}return array;}console.log(insertSort([5, 4, 8, 9, 7, 2, 3, 1, 6])); //[1,2,3,4,5,6,7,8,9]</script></body>
</html>

Javascript插入排序相关推荐

  1. JavaScript实现InsertionSort插入排序算法(附完整源码)

    JavaScript实现InsertionSort插入排序算法(附完整源码) Comparator.js完整源代码 Sort.js完整源代码 InsertionSort.js完整源代码 Compara ...

  2. JavaScript排序算法——插入排序算法

    // 插入排序-原理解释:从数组第二项开始循环,每次循环取当前项与前边的项对比,符合条件则交换位置.function insertSort(array) { // 从第二个元素开始循环for (var ...

  3. 插入排序---希尔插入排序算法(Javascript版)

    取一个小于n的整数作为第一个增量,把序列分组.所有距离为增量的倍数的元素放在同一个组中.先在各组内进行直接插入排序:然后,取第二个增量(第二个<第一个)重复上述的分组和排序,直至所取的增量=1, ...

  4. 还是分不清JavaScript中冒泡排序与插入排序区别的看过来!!!

    冒泡排序 在冒泡排序的过程中,按照从小到大或从大到小的规则排序,不断地比较数组中相邻两个元素的值,较小或较大的元素前移,如下图所示: 从图可以看出,冒泡排序比较的次数是数组长度-1,每轮比较的对数 = ...

  5. JavaScript实现插入排序

    插入排序: 每轮循环从开始的本轮循环开始的索引位置向前比较,如果arr[i] < arr[i - 1]则互换,即确保每轮循环开始索引的元素插入到此元素之前的恰当位置. 代码实现: let arr ...

  6. JavaScript算法——插入排序

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

  7. 问题 c: 插入排序_插入排序:它是什么,以及它如何工作

    问题 c: 插入排序 Insertion sort is a simple sorting algorithm for a small number of elements. 插入排序是一种针对少量元 ...

  8. 资料分享:送你一本《数据结构与算法JavaScript描述》电子书!

    数据结构 是掌握计算机编程必须具备的技能.通常情况下,我想掌握一门编程语言所用的方法就是利用这门语言把数据结构中线性表.栈.队列.字符串.动态数字.整数集合.树.图.搜索.排序等涉及的算法全部写一遍. ...

  9. JavaScript,25 岁生日快乐!

    1995 年 12 月 4 日,网景和 Sun 发表了一份联合声明,宣布推出 JavaScript.它是一种开放的.跨平台的.易于使用的对象脚本语言,用于在企业网络和互联网上实时创建和定制应用程序.历 ...

最新文章

  1. 急速JavaScript全栈教程
  2. android stub.asinterface是什么意思
  3. 我早年在Google学到的10条经验
  4. 裸服务器证书,使用SSH证书远程登陆你的服务器
  5. lumen 分页_lumen 中实现分表
  6. python卸载_删除系统 Python 引发的惨案
  7. 《大数据》第1期“专题”——大数据机器学习系统研究进展(下)
  8. 各個瀏覽器CSS樣式控制
  9. 【机器人】人类反应与机器的浑然一体—营救机器人诞生
  10. PinPhoto On OS X
  11. Eclipse集成lombok插件 解决@Data标签get/set方法找不到异常
  12. 关于InnoDB索引长度限制的tips
  13. 位置编码在注意机制中的作用
  14. rsyslog官方文档
  15. 人工鱼群算法python实现
  16. 类图和对象图(用户管理模块建模)
  17. css特殊边框形状_了解CSS边框角形状
  18. 芝士满满:TikTok快速吸粉视频技巧
  19. 岁月温柔-20 妈妈在省医院第一天
  20. 腾讯潘安群:腾讯云金融级数据库TDSQL分析

热门文章

  1. 罗永浩回应做主播赚钱还债;360 否认裁员;Kubernetes 1.18 版本发布| 极客头条
  2. 不同业务场景下如何进行数据库水平切分?
  3. Python 持续点火,跟进还是观望?
  4. 如何在 15 分钟内构建一个无服务器服务?
  5. 微信数据有望彻底删除了!史上最严隐私法规 GDPR 正式推行
  6. Oracle 加快 Java 迭代速度,功能性版本只维护六个月
  7. java数组存入mysql_将数组存入数据库的解决方法及用VC与数据库交互
  8. android软件欢迎界面,Android应用中实现一个软件启动的欢迎界面
  9. oracle中自定义异常编号,Oracle自定义异常的使用
  10. Kibana查询ES报错:[circuit_breaking_exception] [parent] Data too large