Deje para que para una muestra muy corta como se pueda calcular de encontrar el orden estático de las diferencias por pares: { 1 , 3 , 6 , 2 , 7 , 5 } k
7 6 5 3 2 1
1 6 5 4 2 1
2 5 4 3 1
3 4 3 2
5 2 1
6 1
7
h = [n / 2] + 1 = 4
k = h (h-1) / 2 = 8
Así
Obviamente, para muestras grandes que constan de 80,000 registros, necesitamos memoria muy grande.
¿Hay alguna forma de calcular en el espacio 1D en lugar de 2D?
Un enlace a la respuesta ftp://ftp.win.ua.ac.be/pub/preprints/92/Timeff92.pdf aunque no puedo entenderlo completamente.

Respuestas:
Actualización: El quid de la cuestión es que para lograr la complejidad de tiempoO(nlog(n)) , se necesita en el orden de almacenamiento O(n) .
No,O(nlog(n)) es el límite teórico inferior para la complejidad temporal de (ver (1)) seleccionar el elemento kth entre todos los n(n−1)2 posibles|xi−xj|:1≤i<j≤n .
Puede obtener espacioO(1) , pero solo verificando ingenuamente todas las combinaciones de xi−xj en el tiempo O(n2) .
La buena noticia es que puede usar el estimador de escalaτ (consulte (2) y (3) para obtener una versión mejorada y algunas comparaciones de temporización), implementado en la función
τ univariado es un estimador de escala de dos pasos (es decir, re-ponderado). Tiene una eficiencia gaussiana del 95 por ciento, un punto de ruptura del 50 por ciento y la complejidad del tiempo O ( n ) y el espacio O ( 1 ) (además se puede hacer fácilmente 'en línea', reduciendo la mitad de los costos computacionales en uso repetido, aunque usted tendrá que cavar en el
scaleTau2()delRpaqueterobustbase. El estimadorRcódigo para implementar esta opción, es bastante sencillo de hacer).Editar Para usar esto
R(es gratis y se puede descargar desde aquí )fuente
(Respuesta muy corta) El texto para comentar dice
así que aquí va: hay un documento sobre un algoritmo en línea que aparentemente funciona bastante bien: aplicando el estimador líneaQn .
EDITAR
(por el usuario user603). El algoritmo vinculado a este artículo es una versión en versión de ventana móvil de .Qn
fuente
esta es mi implementación de Qn ...
Estaba programando esto en C y el resultado es este:
fuente