Digamos que tengo tres matrices a
, b
y c
de igual longitud N
. Los elementos de cada una de estas matrices provienen de un totally ordered set, pero no están ordenados. También tengo dos variables de índice, i
y j
. Para todos i != j
, quiero contar el número de pares de índices tales como a[i] < a[j]
, b[i] > b[j]
y c[i] < c[j]
. ¿Hay alguna manera de que esto se pueda hacer en menos de O (N^2) complejidad de tiempo, por ejemplo mediante el uso creativo de algoritmos de clasificación?¿Manera eficiente de encontrar órdenes de par?
Notas: La inspiración para esta pregunta es que, si sólo tiene dos matrices, a
y b
, puede encontrar el número de pares de índice tal que a[i] < a[j]
y b[i] > b[j]
in O(N log N) with a merge sort. Básicamente estoy buscando una generalización para tres arreglos.
Para simplificar, puede suponer que no hay dos elementos de ninguna matriz iguales (sin vínculos).
¿Quieres una única matriz cuando termine este algoritmo? P.ej. una matriz que almacena todos los elementos de 'a',' b' y 'c' en un orden ordenado? – Davidann
¿Podría dar un ejemplo de lo que es un "orden total bien definido"? – Davidann
Un pedido total en un conjunto contiene antisimetría, transitividad y totalidad; ver el artículo de Wiki para más información. http://en.wikipedia.org/wiki/Total_order – Tim