Skip to content

[排序] #13

Open
Open
@Linjiayu6

Description

@Linjiayu6

1 - 快速排序

// 最好的情况是O(N),最差的时候是O(N^2),所以平时说的O(N*logN)为其平均时间复杂度
var arr = [4, 3, 1, 5, 10, 2, 7]
function quickSort (arr) {
  if (arr.length <= 1) return arr
  var left = [], right = [], mid = []

  var pivot_index = Math.floor(arr.length / 2)
  var pivot = arr[pivot_index]

  // 小于放到left, 等于放到mid, 大于放到right
  for (data of arr) {
    if (data < pivot) { left.push(data) }
    else if (data > pivot) { right.push(data) }
    else { mid.push(pivot) }
  }

  return quickSort(left).concat(mid).concat(quickSort(right))
}

quickSort(arr)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions