冒泡排序代碼:
var Array=[8,94,15,88,55,76,21,39];
function sortarr(arr){
? ? for(i=0;i<arr.length-1;i++){
? ? ? ? for(j=0;j<arr.length-1-i;j++){
? ? ? ? ? ? if(arr[j]>arr[j+1]){
? ? ? ? ? ? ? ? var temp=arr[j];
? ? ? ? ? ? ? ? arr[j]=arr[j+1];
? ? ? ? ? ? ? ? arr[j+1]=temp;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return arr;
}
sortarr(Array);
console.log(Array);
當i=0的時候,里面的循環(huán)完整執(zhí)行识腿,從j=0執(zhí)行到j=6,這也就是第一遍排序球恤,結(jié)果是將最大的數(shù)排到了最后态辛,這一遍循環(huán)結(jié)束后的結(jié)果應該是[7,10,85,50,43,65,39,90]
當i=1的時候宽堆,里面的循環(huán)再次完整執(zhí)行怀骤,由于最大的數(shù)已經(jīng)在最后了砸脊,沒有必要去比較數(shù)組的最后兩項笙以,這也是j<arr.length-1-i的巧妙之處感挥,結(jié)果是[7,10,50,43,65,39,85,90];
說到這里缩搅,規(guī)律就清楚了,每次將剩下數(shù)組里面最大的一個數(shù)排到最后面触幼,當?shù)谝粋€循環(huán)執(zhí)行到最后的時候硼瓣,也就是i=6,此時,j=0,只需要比較數(shù)組的第一和第二項置谦,比較完畢堂鲤,返回