冒泡排序

144 阅读1分钟

核心思想

  • 从集合中的第一个元素开始,向右依次比较,如果大就交换,直到最右边是最大的。

代码实现

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)