美文网首页
插入排序

插入排序

作者: cyTishon | 来源:发表于2017-11-10 15:38 被阅读0次

输入:

    n个数字组成的无序序列

输出:

    输入序列的一个排列,该排列满足某种要求。

算法原理分析:

    从一个未排序的序列中,依次选出符合条件的元素(比如最小,最大)插入到一个新的空序列中,直到原来的序列中带插入元素数量为0。此时新的序列为有序序列。

    在实际的算法中,很少创建新的序列,而是在比较之后,通过交换元素,把元素交换到待排序的序列的前端或后端或者某个指定位置。不断重复这个过程,最终使原来的无序序列变为有序序列。

图解原理:

源代码(Javascript实现):

var a = [7,9,95,8,11,54569,236,4124,32,8,9,55,42,16,30,25,31,5,48,32,584,656,321,458,21,559,55,884,2,84,3,3,4,84,8];

var b = [7,9,95,8,11,54569,236,4124,32,8,9,55,42,16,30,25,31,5,48,32,584,656,321,458,21,559,55,884,2,84,3,3,4,84,8];

//升序排列                                                            //降序排列

for(var j = 1; j < a.length; j++){                            for(var j = 1; j < a.length; j++){

    var i = j-1;                                                           var i = j-1;

    for( i ;i >0 || i == 0; i--){                                        for(i;i >0 || i == 0; i--){

        if(a[i + 1] < a[i]){                                                    if(b[i + 1] > b[i]){

            var t = a[i+1];                                                        var t = b[i+1];

            a[i+1] = a[i];                                                            b[i+1] = b[i];

            a[i] = t;                                                                    b[i] = t;

        }                                                                             }

    }                                                                              }

}                                                                               }

相关文章

网友评论

      本文标题:插入排序

      本文链接:https://www.haomeiwen.com/subject/lcbbmxtx.html