Is it possible to calculate median of a list of numbers better than O(n log n)?

前端 未结 7 858
轻奢々
轻奢々 2021-02-14 04:24

I know that it is possible to calculate the mean of a list of numbers in O(n). But what about the median? Is there any better algorithm than sort (O(n log n)) and lookup middl

7条回答
  •  心在旅途
    2021-02-14 04:59

    If the numbers are discrete (e.g. integers) and there is a manageable number of distinct values, you can use a "bucket sort" which is O(N), then iterate over the buckets to figure out which bucket holds the median. The complete calculation is O(N) in time and O(B) in space.

提交回复
热议问题