poster
2019-12-02, 19:21
<p>我正在尝试使用乱序插入来实现排队系统。密钥将对应于成员离开队列的时间。因此,通过找到最小的密钥,可以找到离开队列的下一个成员。 </p><p>如果是c ++,则可以通过地图来解决。 MATLAB提供了一个名为map的结构,但是它是一个hashmap。它支持O(1)插入和删除,但是要找到最小的密钥,则必须遍历所有密钥(O(N))。另一种方法是将向量用作队列。最小密钥始终位于最前面,因此访问权限为O(1)。但是在这种情况下,插入到队列的中间会使所有比插入键高的内容都移位一(O(N))。 </p><p>所以问题是: </p><ul><li>有没有一种方法可以在MATLAB中实现与std :: map类似的行为? </li><li>是否有其他数据结构可以为这些操作提供O(log(N))性能? </li></ul>
更多&回答... (https://stackoverflow.com/q/59137526)
更多&回答... (https://stackoverflow.com/q/59137526)