插入排序

36 阅读1分钟

插入排序

算法思路,区间比较[0-i],前一项大于后一项交换位置,否则break跳出区间比较,进入下一区间,直到n个区间都比较完。

function insert_sort(arr){
    let n = arr.length;
    for(let i=1;i<n;i++){//区间1-n,每个数区段比较「1,2,3,,,n」
        for(let j=i;j>0;j--){//区间0-i内排序[0-1,0-2,,,0-i]
            if(arr[j]<arr[j-1]){
                swap(arr,j,j-1);
            }else{
                break;
            }
        }
    }
    return arr;
}
function swap(arr,i,j){
    let temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
}