2016-11-07 198 views
-1

给定一个数据集D_ {26xn},其中列名为[a-z](列数仅为示例)和n个观察值。每列(x)都有(r_x)唯一状态。 D中的行按列[a-z]的优先级降序排列。在数据库中选择运算符

任务:对于列(b,j,p)返回行的索引,使得相同行的索引是连续的。 (b,j,p)中具有不同值的行之间排序并不重要。

可以有一个解决方案的复杂度为O(n)吗?

Sol1:可以对列(b,j,p)进行排序,并且可以对各列返回索引。但是这个解决方案的复杂性是O(no_columns * nlog(n))。

Sol2:遍历每一行并对它们进行散列。但实际上散列会更昂贵。

回答

0

能有一个O(n)的复杂性的解决方案?

似乎不太可能。你会得到这样的解决方案,你可以在O(n)中排序任意的密钥长度数据。