数组中有n个数,比较相邻两个数,如果前者大于后者,就把大的放到后面去,交换位置,经过n- 1(arr.length-1)轮,就完成了排序
外层每循环一次就完成了一次数组的排序 内层负责交换两个数
let arr=[4,6,7,1,2,0,34]
function bubbleSort(arr){
for(i=0;i<arr.length-1;i++){
for(j=0;j<arr.length-1-i;j++){ //减i是因为 当第一次,找到最大数,放到最后,那么下一次 遍历的时候 就不能把最后一个数算上 因为他就是最大的了 不会出现
if(arr[j]>arr[j+1]){
//交换两个数 temp作为中间值
var temp=arr[j]
arr[j]=arr[j+1]
arr[j+1]=temp
}
}
}
return arr
}
console.log(bubbleSort(arr))
/*
知识点
时间复杂度:一个算法执行所耗费的时间
空间复杂度:一个算法执行所消耗的内存
*/