遍历JavaScript中新引入的Map数据结构的时间复杂度是多少?

问题描述 投票:1回答:1

我遇到了算法问题k-最接近点的原点。在计算了输入点的距离之后,我要对它们进行排序并返回前k个最接近的点。

是否有可能使用Java中的地图数据结构以O(n)的时间复杂度实现这一目标?谢谢。

javascript algorithm data-structures time-complexity priority-queue
1个回答
0
投票

取决于您如何处理数据。如果将元素插入集合中,使得在每次插入之后对元素进行排序,那么在构建集合之后,就已经对元素进行了排序,并且找到K个最接近的点将具有O(n)的复杂度。但是,在这种情况下,您需要在插入时付出性能的代价,因为在每次插入时,您都需要找到在何处插入新项目。即使在这种情况下,实际插入的成本很高,但如果您很少进行插入并且经常进行搜索,则这样做是有意义的。

地图,如注释部分中的Trincot所述,将保持插入顺序,因此除非您插入已排序的元素,否则您将不会获得O(n)。如果插入排序是您的一个好方法,那么您将需要一个易于插入排序的数据结构,例如链表。如果由于插入的复杂性而使插入排序对您不利,那么我看不到如何实现O(n)。

如果您绝对要使用地图,请确保已排序的集合(如链表,并根据其内容创建地图。

© www.soinside.com 2019 - 2024. All rights reserved.