选择排序的思想是每次都从一个起始位置后面的数组里找到最小的,然后与起始位置的值交换

动图示例:

selection-sort

js代码:

function selectionSort(arr) {
  for (let i = 0; i < arr.length; i++) {
    // 外层循环设置最小值索引为当前索引
    let currentMin = i
    for (let j = i; j < arr.length; j++) {
      // 在后面的未排序的数组中找到最小值索引
      if (arr[j] < arr[currentMin]) {
        currentMin = j
      }
    }
    // 交换位置
    if (currentMin !== i) {
      let temp = arr[currentMin]
      arr[currentMin] = arr[i]
      arr[i] = temp
    }
  }
  return arr
}

觉得作者写得不错?不妨轻击下方按钮~

赏点银子给楼主凑凑买咖啡喝吧
微信
支付宝
扫码打赏,建议金额1-10元

Copied From 畅言