基本排序算法:快速排序

基本排序算法:快速排序

排序方式

排序圖片

快速排序

快速排序,一聽到這個名字你就知道它存在的意義,就是快,並且效率高! 它是處理大數據最快的排序算法之一了。web

基本思想

經過一趟排序將待排記錄分隔成獨立的兩部分,其中一部分記錄的關鍵字均比另外一部分的關鍵字小,則可分別對這兩部分記錄繼續進行排序,以達到整個序列有序算法

原理

選擇一個基準,將比基準小的放左邊,比基準小的放在右邊(基準處在中間位置)數組

示意圖

實現方法

function quickSort(arr) {
    //若是數組<=1,則直接返回
    if (arr.length <= 1) { return arr; }
    var pivotIndex = Math.floor(arr.length / 2);
    //找基準,並把基準從原數組刪除
    var pivot = arr.splice(pivotIndex, 1)[0];
    //定義左右數組
    var left = [];
    var right = [];

    //比基準小的放在left,比基準大的放在right
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] <= pivot) {
            left.push(arr[i]);
        }
        else {
            right.push(arr[i]);
        }
    }
    //遞歸
    return quickSort(left).concat([pivot], quickSort(right));
}

排序對比

在這裏插入圖片描述