一、算法描述
每次取未排列元素中第一个和其他未排列元素进行比较,如果前者大于后者,则记录当前索引,一直记录到最小的元素索引,然后交换其位置
二、实现步骤
- 取第一个元素
- 第一个元素和剩下元素进行比较,前者大于后者,则记录当前索引
- 找到最小值索引后进行交换位置
- 继续重复<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;
}
四、图示