js排序算法

1、冒泡排序

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

这种排序方式有两种极端的情况,一种是正序,就会一直在做无用功,还有一种就是逆序,就会一直更换赋值。

2、选择排序

选择排序说通俗点就是,每次在一群人中找出个子最小的那一个,放在排头,然后在剩下的人中再找出个子最小的那个,放在第二位,以此类推。

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

1000条以内的数据,选择排序会优于冒泡排序

3、插入排序

function sort(arr){
    for(let i = 1;i<arr.length;i++){
        let compareKey = arr[i];
        let j = i - 1;
        while(arr[j] > compareKey){
            arr[j + 1] = arr[j];
            j--;
        }
        arr[j + 1] = compareKey;
    }
    return arr;
}

插入排序就是假设第一个值是最小值,然后取第二个值和第一个值比较后的产生的数列,然后再拿第三个值与排序后的数列进行比较,并且插入相应的位置。

猜你喜欢

转载自blog.csdn.net/mofigg/article/details/82988457