美文网首页让前端飞
js算法——插入排序

js算法——插入排序

作者: jia林 | 来源:发表于2018-10-26 11:59 被阅读3次

    思路

    1、对于插入排序来说,第1个元素 (索引为0) 不用考虑,在开始计算时,第1个元素排在第一位,本身就已经有序了,不需要把他放在前面的任何位置,所以是从第二个元素(索引为1)开始计算,进行第一层循环
    2、第二层循环是从第i个元素的位置开始,向前计算,每一次是把当前元素和前一位元素作比较,看看是否能放在前一个元素的位置,最后发生的位置是在第一层循环i的位置,i=1,所以j>0
    3、j初始化为i,j这个索引指向的是当前要考察的元素位置
    4、判断当前位置是不是比前一位要小,如果还要小的话就调换一下
    5、之后运行j--,向前依次查看

     function insertSort(arr){
            var len = arr.length;
            for(var i =1;i<len;i++){
                var result = null;
                for(var j = i;j>0 && arr[j] < arr[j-1];j--){
                    // 调换两者的位置
                        result = arr[j];
                        arr[j] = arr[j-1];
                        arr[j-1] = result
                }
    
            }
            return arr
        }
        var arr = [3,6,1,0,67];
        console.log(insertSort(arr))
    

    相关文章

      网友评论

        本文标题:js算法——插入排序

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