思路
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))
网友评论