选择排序学习笔记

18 阅读1分钟

20210711213326712.gif

// 比大小
function cmp(v1, v2) {
  return v1 - v2;
}

// 交互位置
function swap(i1, i2, array) {
  let tmp = array[i1]
  array[i1] = array[i2]
  array[i2] = tmp
}

function selectSort(array) {
  for (let end = array.length - 1; end > 0; end--) {
    let max = 0;
    for (let begin = 1; begin <= end; begin++) {
      if (cmp(array[max], array[begin]) < 0) {
        // 记录最大位置的索引
        max = begin;
      }
    }
    // 将最大数放到最后
    swap(max, end, array)
  }
}