我正在實現複雜的算法,其中的部分是排序有序數字序列陣列。整個算法應該是nlog(n)複雜度,所以這部分應該相同或更好,但我不知道如何做到這一點。如何有效排序有序序列陣列
有一個例子。有序列的陣列:
(0)
(0,1)
(0)
(0,5)
(2,4)
()
(0,5)
()
(2,4)
(1,3,4)
和最終排序應該是:
()
()
(0)
(0)
(0,1)
(0,5)
(0,5)
(1,3,4)
(2,4)
(2,4)
有一些重要的注意事項:
- 排序是辭書
- 序列是有序的,但有不是連續性的保證
- 也有空seque NCES
- 有很多相同的序列
- 序列是從0到幾百長,沒有更多的
- 陣列可以是100K長,大概沒有更多
- 最終實現將在C++,但現在它是不可能很重要
你能告訴我如何對它進行分類的最佳方法嗎?非常感謝
如果您的實現將在C++中使用'std :: sort'和'std :: lexicographical_compare'。這會給你想要的複雜性,你可以合理確信代碼將起作用。 – Blastfurnace
@Blastfurnace最後,我使用了'std :: sort',並感謝你指出'std :: lexicographical_compare',我不知道它。 – Gaim