zoukankan      html  css  js  c++  java
  • 插入排序

    插入排序的思想:跟斗地主抓牌类似。一张一张的抓,先抓一张,后面再抓的牌和当前手里已经有的牌一张一张进行比较,如果新抓的牌比某张牌大,就用[].splict(开始索引,删除长度,插入元素)方法,在新数组中插入。

    原数组:

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

    排序函数:

    function insert(arr) {
          let newArr = [];    //保存抓到的第一张牌
          newArr.push(arr[0]);
    
          // 从第二项开始依次抓牌,一直把台面上的牌抓光
          for (let i = 1; i < arr.length; i++) {
            let A = arr[i];  // A是新抓的牌,从后向前比较
            for (let j = newArr.length - 1; j >= 0; j--) {
              let B = newArr[j];  // B是当前比较的牌
              // 如果当前新牌A比要比较的牌B大,就把A放到B的后面
              if (A > B) {
                newArr.splice(j + 1, 0, A);
                break;
              }
              // 已经比到第一项,我们把新牌放到手中最前面
              if (j === 0) {
                newArr.unshift(A);
              }
            }
          }
          return newArr;
        }

    输出:

    var nArr = insert(arr);
    console.log(nArr);  // [1, 2, 3, 4, 5, 6]
  • 相关阅读:
    NetCore去注册Eureka
    netcore项目使用swagger开发
    二、Rabbit使用-初次测试
    一、Rabbit使用-安装教程
    安装Erlang使用RabbitMQ
    Mac根目录下挂载文件
    将博客搬至CSDN
    photoshop for mac
    ssh 端口转发
    Linux 全局使用php命令
  • 原文地址:https://www.cnblogs.com/codexlx/p/12877228.html
Copyright © 2011-2022 走看看