美文网首页让前端飞
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