冒泡排序、选择排序

64 阅读1分钟
// 冒泡排序,两两依次向后比较,每比较一轮获取到最大值(或最小值)
function bubbleSort (arr) {
  // arr.length >= 2 才进行排序
  for (let i = 0; i < arr.length - 1; i++) {
    for (let j = 0; j < arr.length - 1 - i; j++) {
      if (arr[j] >= arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
}

// 快速排序,每次找到最小或者最大的,依次排序
function selectSort(arr) {
  // arr.length >= 2 才进行排序
  for(let i = 0; i < arr.length - 1; i++) {
    let minIndex = i; // 获取最小值的下标
    for(let j = i + 1; j < arr.length; j++) {
      if(arr[i] > arr[j]) {
        minIndex = j;
      }
    }
    // 解构赋值,进行值的交换
    [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]
  }
  return arr;
}