插入排序

function selectkSort (arr) {
  if (arr.length === 0) {
    return [];
  }
  for (let i = 0; i < arr.length; i++) { 
    let min = arr[i]; // 将当前位置的元素定义此轮循环当中的最小值
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[j] < min) {
        [arr[j], min] = [min, arr[j]];
      }
    }
    arr[i] = min;
  }
  return arr;
}

const arr = [2, 3, 43, 5, 1, 7, 6, 3, 22, -1];
console.log('排序之前', arr.join(', '));
const res = selectkSort(arr);
console.log('排序之后', res.join(', '));

  

排序之前 2, 3, 43, 5, 1, 7, 6, 3, 22, -1
排序之后 -1, 1, 2, 3, 3, 5, 6, 7, 22, 43

选择排序的基本思想就是从待排序列中选择出最小的,然后将被选出元素和序列的第一个元素互换位置(当前默认是升序排列),则互换完成后第一个元素就是整个序列的最小的元素,则一次选择排序结束。然后我们从剩下的子序列中选择出最小的,然后将该被选出来的元素和该子序列的第一个元素(即整个序列的第二个元素)互换位置,则当前整个序列的第二个元素就是当前序列中的次最小值,第二次选择排序结束。以此类推,直到该待排序列只剩下一个元素后,则整个序列有序。

原文地址:https://www.cnblogs.com/xiaosongJiang/p/11042132.html