js版数据结构与算法—5.10快速排序-基础算法
发布日期:2021-05-06 19:38:08 浏览次数:19 分类:技术文章

本文共 838 字,大约阅读时间需要 2 分钟。

export default (arr) => {  let quickSort = (arr) => {    let len = arr.length    if (len < 2) {      return arr    } else {      // 选标尺元素      let flag = arr[0]      let left = []      let right = []      // 把剩余的元素遍历下,比标尺元素小的放左边,大的放右边      for (let i = 1, tmp; i < len; i++) {        tmp = arr[i]        if (tmp < flag) {          left.push(tmp)        } else {          right.push(tmp)        }      }      // 进行递归操作      return quickSort(left).concat(flag, quickSort(right))    }  }  return quickSort(arr)}

import sort from '../../code/sort/lesson5'test('input:1', () => {  expect(sort([1, 2, 0])).toEqual([0, 1, 2])  expect(sort([5, 3, 7, 4, 1, 9, 8, 6, 2])).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9])  expect(sort([3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48])).toEqual([2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50])})

 

 

上一篇:js版数据结构与算法—0.1时间复杂度
下一篇:js版数据结构与算法—5.6最大区间

发表评论

最新留言

很好
[***.229.124.182]2025年03月28日 21时28分54秒