es6 选择排序

116 阅读1分钟

一、算法描述

每次取未排列元素中第一个和其他未排列元素进行比较,如果前者大于后者,则记录当前索引,一直记录到最小的元素索引,然后交换其位置

二、实现步骤

  1. 取第一个元素
  2. 第一个元素和剩下元素进行比较,前者大于后者,则记录当前索引
  3. 找到最小值索引后进行交换位置
  4. 继续重复<2> <3> 步骤

三、代码实现

function insertSort(arr = []){
    if(arr.length === 0){
        return arr
    }
    
    for(let i = 0; i < arr.length-1; i++){
        let idx = i;
        for(let j = i + 1; j< arr.length; j++){
            if(arr[idx] > arr[j]){
                idx = j
            }
        }
        [arr[i],arr[idx]] = [arr[idx],arr[i]]
    }
    
    return arr;
}

四、图示

754476-06a4090ebc2f5655.gif