8种经典算法之直接插入排序

28 篇文章 0 订阅
22 篇文章 0 订阅
直接插入排序是稳定的排序方法。 
基本思想: 
假设待排序的记录存放在数组array[1..n]中,将第一个数取出来,自己array[1]作为一个有序序列,无序序列即array[2..n]。从n=2 至 n = n为止,依次将array[n]插入到有序序列当中,使插入的记录也是有序的,生成含n个记录的有序序列。 
具体操作: 
将要插入的记录array[i]取出,保存到临时变量temp中; 
找到array[ i ] (i=2,3….,n-1)的正确插入位置k (1≤ k ≤ n-1 ); 
将temp与array[i-1]进行比较,若temp大,则将array[i-1]向后移,直到找到比temp小的记录,将temp插入到该记录的后一位置。 
如此循环n-1次,直到把这n-1个记录全部插入有序序列。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

<script>
    var a = [1 , 3 , 7 , 2 , 5 , 9 , 8 ,6 , 4 , 10];
    var i , j , temp;
    for (i = 1; i < 10; i++) {
        //暂时保存需要插入的那个数,因为在比较时会把a[i]的值覆盖,所以需要先保存
        temp = a[i];
        for (j = i - 1; j >= 0 && a[j] > temp; j--) {
            //如果满足条件,则将a[j]向后移动
            a[j+1] = a[j];
        }
        //将这个数插入有效序列
        a[j+1] = temp;
    }

    for (var i = 0;  i < 10 ; i++) {
        document.write(a[i]);
    }
</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值