数据结构_快速排序

Posted junlan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构_快速排序相关的知识,希望对你有一定的参考价值。

//快速排序
  class ArrayList {
    constructor () {
      this.array = []
    }
    insert (data) {
      return this.array.push(data)
    }
    quickSort () {
      this.array = this.quick(this.array)
    }
    //辅助函数
    quick (arr) {
      let length = arr.length
      if (length <= 1) return arr
      let pivotValue = arr.splice(Math.floor(length / 2), 1)[0]
      let leftArr = []
      let rightArr = []
      for (let i = 0; i < arr.length; i++) {
        if (arr[i] < pivotValue) leftArr.push(arr[i])
        else rightArr.push(arr[i])
      }
      return this.quick(leftArr).concat(pivotValue, this.quick(rightArr))
    }
  }
  let arr = new ArrayList()
  arr.insert(9)
  arr.insert(5)
  arr.insert(8)
  arr.insert(0)
  arr.insert(1)
  arr.insert(6)
  arr.insert(4)
  arr.insert(7)
  arr.insert(3)
  arr.insert(2)

 

以上是关于数据结构_快速排序的主要内容,如果未能解决你的问题,请参考以下文章

数据结构_快速排序

快速排序变种实现:一次宏定义引发的熬夜事件

算法笔记_015:快速排序(Java)

排序_快速排序

[新星计划] Python手撕代码 | 十大经典排序算法

[新星计划] Python手撕代码 | 十大经典排序算法