Например:
{2,3},{1,2},(2,2},{3,1},{2,1} to {1,2},{2,1},{2,2},{2,3},{3,1}
Вот что я думаю:
Выполнить сортировку слиянием по первому столбцу значений. Выполните итерацию по набору, чтобы увидеть, есть ли в первом столбце повторяющиеся значения. Если есть, включите их в список.
Объединить сортировать этот список во втором столбце, а затем интегрировать их в основной набор. Хотя это кажется возможным, это кажется слишком сложным. Это должно работать в O(NlogN)
, поэтому, если кто-то может придумать более быстрый / такой же сложный алгоритм, который также проще, пожалуйста, опубликуйте его!
Спасибо!