冒泡排序每循环一遍就会有一个元素被放到位
- 当i=0的时候,里面的循环完整执行,从j=0执行到j=6,这也就是第一遍排序,结果是将最大的数排到了最后,这一遍循环结束后的结果应该是[3,2,1,6,9,4]
- 当i=1的时候,里面的循环再次完整执行,此时最大的数已经在最后了,所以没有必要去比较数组的最后两项,这也是j<arr.length-1-i的用处
- 每次将剩下数组里面最大的一个数排到最后面,当第一个循环执行到最后的时候,也就是i=4,此时,j=0,只需要比较数组的第一和第二项,比较完毕
let arr = [3,2,1,6,9,4]
function arrsort(arr) {
for(let i = 0;i<arr.length-1;i++){
for(j = 0;j < arr.length-1-i;j++){
if(arr[j] > arr[j+1]){
let temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
return arr
}
let newarr = arrsort(arr)
console.log(newarr)