Я реализую сложный алгоритм, частью которого является сортировка массива упорядоченных последовательностей чисел.Весь алгоритм должен быть 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)
Есть несколько важных замечаний:
- сортировка лексикографическая
- последовательности упорядочены, но нет гарантии непрерывности
- есть также пустые последовательности
- есть много идентичных последовательностей
- последовательности от 0 додлиной в сотни, не более
- массив может быть длиной 100 КБ, вероятно, не более
- Окончательная реализация будет в C ++, но теперь это, вероятно, не важно
МожетВы предлагаете мне лучший способ, как отсортировать это, пожалуйста?Большое спасибо