【问题标题】:Find closest in value to the median of S找到最接近 S 中位数的值
【发布时间】:2015-02-11 03:31:01
【问题描述】:

给定一个未排序的数组 A[1....N],试图找到 A 中与 A 的中位数接近的 K 个数。我可以在线性时间 O(N) 内找到 A 的中位数.我也可以在线性时间内找到 K 吗?例如。 A = [9,2,7,3,8,1,12},Median(A) = 7,关闭值为 7 的 3 个项目是 {7,8,9}。

【问题讨论】:

    标签: algorithm sorting


    【解决方案1】:

    我想你想要一个selection algorithm,比如Introselect。如果你碰巧用 c++ 实现,你可以使用非常有用的std::nth_element

    它将重新排列元素序列,使得给定点之前的所有元素都小于后面的元素。这样做两次,你就得到了最接近均值的 K 个元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 2022-01-21
      • 2012-05-15
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多