Допустим, у меня есть три массива a
, b
и c
одинаковой длины N
. Элементы каждого из этих массивов взяты из полностью упорядоченного набора, но не отсортированы. У меня также есть две индексные переменные, i
и j
. Для всех i != j
я хочу подсчитать количество пар индексов, таких как a[i] < a[j]
, b[i] > b[j]
и c[i] < c[j]
. Есть ли способ сделать это менее чем за O(N ^ 2) временной сложности, например, путем творческого использования алгоритмов сортировки?
Примечания: Идея этого вопроса заключается в том, что если у вас есть только два массива, a
и b
, вы можете найти количество пар индексов, таких что a[i] < a[j]
и b[i] > b[j]
за O(N log N) с сортировкой слиянием. Я в основном ищу обобщение до трех массивов.
Для простоты вы можете предположить, что никакие два элемента любого массива не равны (нет связей).
a
,b
иc
в отсортированном порядке? - person David Weiser   schedule 19.01.2011>
для одного массива, а<
для остальных? Кажется, что это произвольный выбор, поскольку вы можете просто изменить порядок. - person comingstorm   schedule 19.01.2011>
, означал, что это совершенно произвольно. - person dsimcha   schedule 19.01.2011