具有O(log(N))插入,删除和最小键查找的MATLAB数据结构?

时间:2019-12-02 11:00:35

标签: matlab dictionary data-structures

我正在尝试实现无序插入的排队系统。密钥将对应于成员离开队列的时间。因此,通过找到最小的密钥,可以找到离开队列的下一个成员。

如果是c ++,则可以通过地图来解决。 MATLAB提供了一个名为map的结构,但是它是一个hashmap。它支持O(1)插入和删除,但是要找到最小的密钥就必须遍历所有密钥(O(N))。另一种方法是将向量用作队列。最小密钥始终位于最前面,因此访问权限为O(1)。但是在这种情况下,插入到队列的中间会使所有比插入键高的内容都移位一个(O(N))。

所以问题是:

  • 有没有一种方法可以在MATLAB中实现与std :: map类似的行为?
  • 是否存在另一个可以为这些操作提供O(log(N))性能的数据结构?

0 个答案:

没有答案