JavaScript实现插入排序算法

一、插入排序算法原理

插入排序是先将数组中的一部分数进行排序,再将数组中的还未排序的数与已排序的数逐一进行比较,每一次比较都判断二者的大小关系,大的数右移,为小的数腾出位置,直到遇到比这个数小的数为止,该数即“插入”到此处左移,接着将下一个未排序的数与左边已排好序的数逐一比较,重复这一过程。

二、JS实现

1、创建一个待排序的数组

var arr = [6,3,5,2,7,1];

2、创建中间变量

var tem,inner;	//分别为值和索引的中间变量

3、双重for循环

for(var outer = 1;outer <= arr.length-1;outer++){
			tem = arr[outer];
			inner = outer;

			while(inner >0 && arr[inner-1]>arr[inner]){
				arr[inner] = arr[inner-1];
				inner--;
				arr[inner] = tem;
			}
			console.log(arr);
		}

首先看下此时的效果:
在这里插入图片描述
发现排序已成功。

现在对双重for循环的代码进行解释:
(1)外层循环将遍历数组,每次循环决定要“插入”的数。
(2)内层循环从第二个元素(第一个进行排序的元素)开始,每次与前一个数进行比较,决定是否左移。

完整代码及注释如下:
在这里插入图片描述
这样我们就用JS实现了插入排序算法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值