冒泡排序(Bubble Sort)
- 比较两个相邻的元素,如果后一个比前一个大,则交换位置。
- 第一轮的时候最后一个元素是最大的一个。
- 经过 n-1(数组的 length - 1) 轮,就完成了所有数的排序
- 时间复杂度:O(n²)
const bubbleSort = (arr) =>{
if(!arr.length) return [];
for(let i =0;i<arr.length-1;i++){
let flag = false;
for(let j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
let temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
flag = true;
}
}
if(!flag) break;
}
console.log(arr)
}
const bubbleArray = [5,2,3,5,7,9,1,2];
bubbleSort(bubbleArray);
🤔思考,如何优化冒泡排序?