Skip to content

Latest commit

 

History

History
27 lines (18 loc) · 756 Bytes

11.md

File metadata and controls

27 lines (18 loc) · 756 Bytes

快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序n个项目要O(nLogn)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见.


  const arr = [1,23,15,12,7]

  function quickSort(arr) {
    
    if (arr.legnth <= 1) return arr

    let left = [],
      right = [],
      pivotI = Math.floor(arr.length / 2),
      pivot = arr.splice(pivotI, 1)[0]

    for (let i =0; i < arr.length; i++) {
      arr[i] > pivot ? right.push(arr[i])
        : left.push(arr[i])
    }

    return quickSort(left).concat([pivot], quickSort(right))
  }