var arr=[2,5,3,1,7,8,78,89];
function bubbleSort(arr){
for(var i = 0;i<arr.length;i++){
for(var 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;
}
console.log(bubbleSort(arr)) ;j<arr.length-1-i //是减掉之前的索引值为什么还要减1?
3 回答
MarlboroKay
TA贡献189条经验 获得超236个赞
补充一下:如果 j = i+1 的话,你的判断条件要改一下
if(arr[i]>arr[j]){ var temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; }
要减1是因为,要依次比较。例如:第二个要与第一个比较。但是总长度要减一要不然数组就越界了。
望采纳!
添加回答
举报
0/150
提交
取消