码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构_快速排序

时间:2020-02-26 20:34:45      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:floor   data   new   push   lis   math   his   tar   array   

//快速排序
  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)

 

数据结构_快速排序

标签:floor   data   new   push   lis   math   his   tar   array   

原文地址:https://www.cnblogs.com/JunLan/p/12368754.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!