查找 c++ 中值集合的中位数

发布于 2024-11-08 07:37:30 字数 325 浏览 3 评论 0原文

可能的重复:
计算存储在 Vector 中的值的中位数 - C++?

我需要存储值的集合,然后能够计算其中值。

C++ 中存储这些值的最佳容器是什么?如何找到中位数?

(我可能还希望能够删除特定元素,所以我认为 set 可能不是最好的选择......)

Possible Duplicate:
Compute Median of Values Stored In Vector - C++?

I need to store a collection of values and then have the ability to calculate its median value.

What is the best container in c++ to store these values, and how do I find the median?

(I might also want to be able to remove specific elements, so I am thinking set may not be the best option...)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陪我终i 2024-11-15 07:37:30

如果没有任何其他特定要求,您应该默认为 std::vector。您提到您想稍后删除项目;这意味着您可能需要考虑使用 std::list

要查找中位数,可以使用 std::nth_element,要求它以第 N/2(或 (N-1)/2)元素为中心。其运行时间为O(N)

Short of any other specific requirements, you should default to a std::vector. You mention that you want to remove items later; this implies that you may want to consider a std::list instead.

To find the median, you can use std::nth_element, asking it to pivot on the N/2-th (or (N-1)/2-th) element. This runs in O(N) time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文