核心思想
- 从集合中的第一个元素开始,向右依次比较,如果大就交换,直到最右边是最大的。
代码实现
function bubblingFun(arr){
let tempArr = arr.slice();
for(let j = tempArr.length - 1; j > 0; j--){
for(let i = 0; i < j; i++){
if(tempArr[i] > tempArr[i+1]){
changeFun(tempArr, i, i+1);
}
}
}
}
// 交换函数
function changeFun(arr, i, j) {
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
算法效率
- 时间复杂度: O(n^2)
- 空间复杂度: O(1)