2020-01-28 快速排序

2020-01-28  本文已影响0人  人拆
function getp(arr) {
  // 获取区分点
  const len = arr.length
  const pIndex = ~~(len / 2)

  return arr.splice(pIndex, 1)[0]
}

function quickSort(arr) {
  const len = arr.length
  if (len <= 1) return arr

  const p = getp(arr)
  const left = []
  const right = []

  arr.forEach(item => {
    (item < p ? left : right).push(item)
  })

  return quickSort(left).concat(p, quickSort(right))
}
上一篇 下一篇

猜你喜欢

热点阅读