维护具有随机访问权限的元素的排序列表

时间:2019-04-07 04:21:17

标签: arrays algorithm sorting language-agnostic

给出一个带有重复的无序数字列表,以及另一个带有索引的数字列表。找到在给定索引处按排序顺序显示的数字。

我们只应考虑输入直到当前index数组的索引点。

如果我们正在考虑2数组中的元素index,则应在输入数组3 7 9 10中查找第二个排序元素

I/P   => 3 7 9 10 1 2
Index => 1 1 3  2 5 1

The output should be 

3 3 9 7 10 1

例如Index数组中的元素5将具有与1 3 7 9 10相对应的排序输入数组,因此第5个元素是10

我的解决方案是使用multiset,然后使用advance在集合中找到第n个索引。

For i : [1 : len(I/P)]
   set.add(I/P[i])
   advance(I/P, Index[i])
   print

但是问题已经解决,不支持随机访问,advance降级为线性时间。

如何在N Log(n)

中解决此问题

0 个答案:

没有答案