不二如是 发表于 2017-5-25 06:00:27

算法21 ◉‿◉ 插入排序

本帖最后由 不二如是 于 2017-5-25 07:02 编辑

http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png

按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁





程序分析:

插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。       
一般来说,插入排序都采用in-place在数组上实现。

具体算法描述如下:
<1>.从第一个元素开始,该元素可以认为已经被排序;
<2>.取出下一个元素,在已经排序的元素序列中从后向前扫描;
<3>.如果该元素(已排序)大于新元素,将该元素移到下一位置;
<4>.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
<5>.将新元素插入到该位置后;
<6>.重复步骤2~5。


源代码:
**** Hidden Message *****



○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛

yuyisuo 发表于 2017-9-6 15:58:49

window.onload = function () {

        let init = ;
        let sort = [];

        sort = init;

        for (let i = 1, initLen = init.length; i < initLen; i++) {
                let value = init;
                let sortLen = sort.length;
                let j = 0;

                for (; j < sortLen; j++) {
                        if (value <= sort) {
                                for (let k = sortLen; k > j; k--) {
                                        sort = sort;
                                }
                                sort = value;
                                break;
                        }
                }

                if (j === sortLen) {
                        sort = value;
                }
        }

        console.log(sort);

};

~风介~ 发表于 2017-5-25 10:27:35

还有什么是你不会的么?{:9_232:}

不二如是 发表于 2017-5-25 10:36:04

~风介~ 发表于 2017-5-25 10:27
还有什么是你不会的么?


一个只会开车不会修车的人,怎么当鱼C最纯洁的黑天使~

~风介~ 发表于 2017-5-25 10:44:08

不二如是 发表于 2017-5-25 10:36
一个只会开车不会修车的人,怎么当鱼C最纯洁的黑天使~

有没有兴趣搞搞electron?{:10_256:}

tuxingzhi 发表于 2017-8-19 19:16:12

支持楼主

嘴角浅笑 发表于 2017-8-22 21:52:40

点赞

blue18 发表于 2017-11-7 20:35:10

谢谢分享

dsa159245 发表于 2018-5-6 15:34:24

window.onload = function(){
                                var array = ;
                               
                                function InsertionSort(arr){
                                        for(var i = 1; i < arr.length;i++){
                                                for(j = 0; j < i-1;j++){
                                                        if(arr < arr){
                                                                arr ^= arr;
                                                                arr ^= arr;
                                                                arr ^= arr;
                                                        }
                                                }
                                               
                                               
                                        }
                                        return arr;
                                }
                               
                               
                                document.write(InsertionSort(array));
                        };

忆不俊源 发表于 2018-6-21 19:56:28

难度大

a211827754 发表于 2018-9-24 15:44:04

em

waitforlove 发表于 2018-9-26 16:11:49

<!DOCTYPE html>
<html>
<head>
        <title>21</title>
        <meta charset="utf-8">
        <script type="text/javascript">
                window.onload=function(){
                        var yip=new Array(10,13,15,18,19,22);//已排序
                        var wep=new Array(9,8,17,14,16,11,20);//未排序 创建数组一个值得时候 wep=new Array();
                        document.write("已排序列表:"+yip+"<br>");
                        document.write("未排序列表:"+wep+"<br>");
                        charupx(yip,wep);
                }

                function charupx(yip,wep){
                        var leny=yip.length;
                        var lenw=wep.length;
                        if(lenw>0){
                                var pone=wep.pop();
                                yip.push(0);
                               
                                for(var i=leny-1;i>=0;i--){
                                        if (yip>pone) {
                                                yip=yip;
                                                yip=pone;
                                        }
                                        else{break}       
                                }
                                charupx(yip,wep);
                        }
                        else{document.write("已经完成排序:"+yip);}
                }
        </script>
</head>
<body>

</body>
</html>

凌乱大帅比 发表于 2018-10-10 17:53:46

不行了不行了,写不来,坐看大佬操作{:10_280:}

cupbbboom 发表于 2019-1-10 07:00:29

        function fF(sequence) {
                var a = [];
                for (var i = 0; i < sequence.length; i ++) {
                        if (a.length != 0) {
                                var lenA = a.length;
                                for (var j = 0; j < lenA; j ++) {
                                        // 如果要插入的数 大于 列表的中数 ,那么 应该在找到自己的位置时,才会插入
                                        // 找到自己的位置 意味着 要么 比所有数都大(插在最后);要么小于某个数,
                                        if (sequence > a) {
                                                if (j == lenA -1) {
                                                        // 一定要比较完所有数,在进行插入操作
                                                        a.splice(j + 1,0,sequence);
                                                }else {
                                                        continue;
                                                }
                                               
                                        }else {
                                                a.splice(j,0,sequence);
                                                //跳出第二个for
                                                break;
                                        }
                                }
                        } else {
                                a.push(sequence);
                        }
                       
                        // alert(a);
                }
                console.log(a);

kkk222 发表于 2019-1-13 23:13:56

{:5_102:}

ladenc 发表于 2019-1-24 10:04:17

插入排序 [修改]

wangdxf 发表于 2019-4-1 13:19:57

{:10_277:}

白无痕 发表于 2019-4-24 18:35:16

        var arr = ;
        var n;
        for (var i=1 ; i<arr.length ; i++){
                n = arr;
                for (var j=i-1 ; j>=0 ; j--){
                        if (n < arr){
                                arr = arr;
                                arr = n;
                        }
                        else{
                                break;
                        }
                       
                }

        }
        console.log(arr);

flb123 发表于 2019-7-12 12:18:39


支持小甲鱼啊,赞~

vcbeaut 发表于 2019-8-16 09:43:56

瞅瞅
页: [1] 2
查看完整版本: 算法21 ◉‿◉ 插入排序