gpt4 book ai didi

algorithm - 队列中的前 n 个元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:05 27 4
gpt4 key购买 nike

我已经使用两个堆栈实现了一个队列,我想找到队列中前 N% 的元素。

例如:
队列按此顺序获取元素 {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20}

前 10% 的元素表示 20 的 10% = 2

因此答案应该是 19 和 20

我能想到的有两种方法

  1. 对队列进行排序,计算 N% 的项目数 (X),然后获取前 X 个元素。
  2. Selection algorithm . (我刚刚遇到这个算法,它基于快速排序的思想。所以我可能必须将整个队列复制到一个数组中,然后应用该算法)

有没有更好的办法解决这个问题?

最佳答案

队列不是最好的数据结构,因为你不应该访问其中的元素(大多数队列实现甚至不提供访问运算符)所以你不应该对它进行排序。所以,如果你因为一些其他需求不需要队列,我建议你使用普通数组。

排序是一个非常耗时的过程。当您读取/插入队列元素时,您可以计算它们的总和。根据已知的总和、元素的数量和所需的百分比,您可以计算出一个阈值。然后,您需要遍历元素(如果使用队列,您可以一个一个地提取它们)并显示那些大于计算阈值的元素。

关于algorithm - 队列中的前 n 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25769082/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com