ChickenDreamFactory/fe-chicken

20.选择排序

Opened this issue · 0 comments

// 思路: 找到目标值的下标,与当前遍历元素的下标交换。

function selectionSort(arr) {
  for (let i = 0; i < arr.length; i++) {
    let indexMin = i // 当前下标
    // j = i i就是已经排序过的
    for (let j = i; j < arr.length; j++) {
      //  寻找目标值 这里是最小值 也可以是其他判断条件
      if (arr[indexMin] > arr[j]) {
        indexMin = j
      }
    }
    //  下标不同 与当前遍历元素的下标交换。
    if (indexMin !== i) {
      [arr[indexMin], arr[i]] = [arr[i], arr[indexMin]]
    }
  }
}

// 使用
const oldArr = [3, 4, 5, 1, 2, 7, 8]

selectionSort(oldArr)
console.log('排序结果', oldArr)