3.插入排序
[图片上传失败...(image-a6b8df-1649331932166)]
原理:从第二个元素开始比较(从第二个元素开始,到最后一个元素结束),每次比较都是跟排在自己前面的元素进行比较
//声明一个空数组
var arr2= [];
for(var i =0;i<10;i++){
arr2[i]= Math.round(Math.random()*100);
}
console.log(arr2);
//排序
for(var i =1;i<arr.length;i++){
//从第二个元素开始比较,到最后一个元素结束
//比如循环第一次的时候,当前元素是第二个元素
//所以,他就要跟第一个元素进行比较
for(var j=i;j>0;j--){
//内层循环是从当前做对比的元素开始,向左进行比较
//所以内层循环的起始位置应该是当前元素的位置(j=i)
//因为要向左开始比较,所以应该是递减的(j--)
//再没有遇到比他还小的元素之前,当前比较应该一直进行到第一个元素才结束(j>0)
//开始进行比较
if(arr[j]<arr[j-1]){
//如果档期那元素比前一个元素小,则交换两个元素的位置(前一个元素往后挪一位)
var max = arr[j-1];
arr[j-1]=arr[j];
arr[j]=max;
}
else{
//如果前一个元素比当前元素小,则结束循环
break
}
}
}
console.log(arr);