数组排序

101 阅读1分钟

1。快速排序 思路:通过一个临界时,把一个数组分为两个数组,小于临界值放倒左边,大于临界值放到右边,一轮循环结束之后,继续往下递归,直到每一个小数组的长度为2

function qustSort(arr, start, end) {
    if (start > end) {
        return
    }
    let i = start
    let j = end
    let base = arr[start]
    while (i < j) {
        while(i<j && arr[j] >= base) j--
        while(i<j && arr[i] <=base) i++
        if (i < j) {
            swap(arr, i, j)
        }
    }
    swap(arr, start, i)
    qustSort(arr, start, j - 1)
    qustSort(arr, j + 1, end)
}

function swap(arr, left, right) {
    let temp
    temp = arr[right]
    arr[left] = arr[right]
    arr[right] = arr[left]
}