快速排序

// 实现一个快速排序
// 取一个数,然后左边找小的,右边找大的,对换,然后

function quickSort(nums, i, j) {
  help(0, nums.length - 1)

  function help(left, right) {
    if (left >= right) return
    let i = left
    let j = right
    let key = nums[left]
    while (i < j) {
      while (nums[j] >= key && j > i) {
        j--
      }
      while (nums[i] <= key && i < j) {
        i++
      }
      if (i < j) {
        const temp = nums[j]
        nums[j] = nums[i]
        nums[i] = temp
      }
    }
    nums[left] = nums[i]
    nums[i] = key
    help(left, i - 1)
    help(i + 1, right)
  }
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com

文章标题:快速排序

文章字数:113

本文作者:泽鹿

发布时间:2019-07-29, 11:20:42

最后更新:2019-08-28, 19:01:32

原始链接:http://panyifei.github.io/2019/07/29/算法/排序/快速排序/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏