【JavaScript算法】---插入排序(转载自我的老师 Alley-巷子)
时间:2019-08-31
本文章向大家介绍【JavaScript算法】---插入排序(转载自我的老师 Alley-巷子),主要包括【JavaScript算法】---插入排序(转载自我的老师 Alley-巷子)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、什么叫做插入排序法
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法
二、核心
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。 插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中
插入排序的原理其实很好理解,可以类比选择排序。选择排序时在两个空间进行,等于说每次从旧的空间选出最值放到新的空间,而插入排序则是在同一空间进行
三、思路
从第二位数字开始,每一个数字都试图跟它的前一个比较并做交换,并重复这个动作。直到前一个数字不存在或比它小或者相等的时候停下来
四、代码
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 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- C#接口的作用(经典)
- C#里面的泛型(T),泛型类,泛型方法,泛型接口等简单解释
- c#之task与thread区别及其使用
- C# 外接(网口)双摄像头视频获取
- C# 获取.exe文件的运行目录
- MySQL存储过程示例
- C# winform之Log4Net的使用
- C# 调用百度AI接口实现文字识别
- MySQL 案例:自增列的空洞问题与“小”BUG
- 教你用云开发打造一个双端自动发布的博客体系(上)
- [Oracle概念]密码文件
- [Oracle 11g RAC安装]OPENFILER配置
- [Oracle 11g RAC安装]RAC环境搭建
- [Oracle 11g RAC安装]Grid安装
- [Oracle 11g RAC安装]Oracle安装