zoukankan      html  css  js  c++  java
  • JavaScript 数组插入元素并排序

    1.插入类排序

    插入类排序的思想是:在一个已排好序的序列区内,对待排序的无序序列中的记录逐个进行处理,每一步都讲待排序的记录和已排好的序列中的记录进行比较,然后有序的插入到该序列中,直到所有待排序的记录全部插入为止。

    (1)直接插入排序(基于顺序查找)

    思想:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。

    第一趟比较前两个数,然后把第二个数按大小插入到有序表中;

    第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;

    依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。

    效率:

    时间复杂度:平均O(n^2),不适合对于数据量比较大的排序应用。

    空间复杂度:O(1)

    稳定性:稳定

    js代码:

     function sort(elements){
            for(var i = 1; i < elements.length; i++){
                if(elements[i] < elements[i-1]){
                    var guard = elements[i];
                    var j = i - 1;
                    elements[i] = elements[j];
                    while(j >= 0 && guard < elements[j]){
                        elements[j+1] = elements[j];
                        j--;
                    }
                    elements[j+1] = guard;
                }
            }
        }
  • 相关阅读:
    BZOJ1409 : Password
    BZOJ2862 : 分糖果
    BZOJ2093 : [Poi2010]Frog
    BZOJ2506 : calc
    BZOJ3290 : Theresa与数据结构
    BZOJ1397 : Ural 1486 Equal squares
    BZOJ2789 : [Poi2012]Letters
    BZOJ3417 : Poi2013 Tales of seafaring
    BZOJ3251 : 树上三角形
    BZOJ3262 : 陌上花开
  • 原文地址:https://www.cnblogs.com/luorende/p/8549679.html
Copyright © 2011-2022 走看看