2016-11-07 28 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)中排序任意的密鑰長度數據。