选择排序(Select sort)

const array = [10, 7, 2, 100, 5, 5, 230, 400, 1, -2];
// 选择排序
// 找到数组中的最大值或最小值,放到数组的起始位置
// 每一轮都会减少一次比较 (let j = i + 1)
// 直到数组变成有序

function selectSort(arr) {
  for( let i = 0, len = arr.length; i < len; i++) {
    // 每一轮定义一个最小值索引
    let minIndex = i;
    for(let j = i + 1; j < len; j++) {
      if(arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    if(minIndex !== i) {
      // 找到最小索引后,让arr[i]和最小索引调换位置
      [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
    }
  }
  return arr;
}

————————

const array = [10, 7, 2, 100, 5, 5, 230, 400, 1, -2];
// 选择排序
// 找到数组中的最大值或最小值,放到数组的起始位置
// 每一轮都会减少一次比较 (let j = i + 1)
// 直到数组变成有序

function selectSort(arr) {
  for( let i = 0, len = arr.length; i < len; i++) {
    // 每一轮定义一个最小值索引
    let minIndex = i;
    for(let j = i + 1; j < len; j++) {
      if(arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    if(minIndex !== i) {
      // 找到最小索引后,让arr[i]和最小索引调换位置
      [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
    }
  }
  return arr;
}