3.插入排序
[圖片上傳失敗...(image-a6b8df-1649331932166)]
原理:從第二個元素開始比較(從第二個元素開始恋拷,到最后一個元素結(jié)束),每次比較都是跟排在自己前面的元素進行比較
//聲明一個空數(shù)組
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++){
//從第二個元素開始比較窥妇,到最后一個元素結(jié)束
//比如循環(huán)第一次的時候墨状,當前元素是第二個元素
//所以涎跨,他就要跟第一個元素進行比較
for(var j=i;j>0;j--){
//內(nèi)層循環(huán)是從當前做對比的元素開始,向左進行比較
//所以內(nèi)層循環(huán)的起始位置應該是當前元素的位置(j=i)
//因為要向左開始比較,所以應該是遞減的(j--)
//再沒有遇到比他還小的元素之前,當前比較應該一直進行到第一個元素才結(jié)束(j>0)
//開始進行比較
if(arr[j]<arr[j-1]){
//如果檔期那元素比前一個元素小牍汹,則交換兩個元素的位置(前一個元素往后挪一位)
var max = arr[j-1];
arr[j-1]=arr[j];
arr[j]=max;
}
else{
//如果前一個元素比當前元素小,則結(jié)束循環(huán)
break
}
}
}
console.log(arr);