![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Compara las 2 variantes de código en el mismo TdR:
и:
¿Podría haber sido escrito por la misma persona con poco más de una hora de diferencia? La letra es dudosa )Alexei, estás matando a los jóvenes talentos...
Este vendedor no ha sido capaz de empezar a vender durante 5 años... y dices que es aún peor como programador
Lo siento, no quería matarte.
:-) si no intentas mantener el orden, el tiempo esO(1), el número total de pasos de todos los bucles= tamaño del array
demasiado perezoso para codificar :-)
1. Busca los 3 primeros de izquierda a derecha.
2. si se encuentra, entonces busca un no-triple de derecha a izquierda, cópialo en el lugar del 3.
continuar hasta que 1,2 se hayan cruzado, recortar la matriz por el número de copias.
Idealmente, es exactamente 1/2 de la "ordenación de burbujas" :-) Si en lugar de copiar, se hace un intercambio, la salida será un array parcialmente ordenado (los 3 tercios desplazados a la derecha)
El número total de pasos de todos los bucles=tamaño de la matriz es de complejidad O(n).
Si la matriz de entrada está ordenada, el problema dado se resuelve mediante una búsqueda binaria.
La complejidad es O(log(n)) en el caso medio y O(n) en el peor.
Todavía tengo el control de la versión de Peter.
Es bastante compacto e incluso funciona correctamente. Felicidades a Peter.
Pero en términos de velocidad es el segundo del final. O el primer lugar desde el final, si no se cuenta el original, completamente inutilizable por la variante de velocidad del dueño de este hilo.
¿Cómo lo has probado?
¿Cómo ha sido la prueba?
Estudia el código.
Es malo cuando eres demasiado perezoso para codificar.
No es que me dé pereza en absoluto, pero la MT sólo está en los VDS y no se experimenta en ellos.
sobre eso :
+- 1 :-) Volveré del campamento de verano en un par de días, lo comprobaré...
ps. además, en el código, hay una entrada de bucle extra en la terminación... una nimiedad, pero se puede eliminar
No es que me dé pereza en absoluto, pero la MT sólo está en los VDS y no se experimenta en ellos.
sobre eso :
+- 1 :-) Vuelvo de vacaciones en un par de días, lo comprobaré...
ps. además, en el código de entrada extra para el bucle al final ... una nimiedad, pero se puede quitar
¡Bravo! Después de corregir un par de errores puede que me hayas bajado del pedestal incluso sin usar ArrayCopy. Jaque mate. :))
¡Bravo! Después de corregir un par de errores, me has bajado del pedestal incluso sin usar ArrayCopy. Jaque mate. :))
Aunque no es exactamente así, porque la matriz de salida es bastante diferente, ya mezclada. ¡Pero es genial de todos modos!
Por supuesto, si se trata de cotizaciones, esto no funcionará. Estoy en el podio de nuevo. ))
He cambiado la forma de calcular la suma de comprobación. Ya no es la simple suma de todos los elementos, sino que la suma es (valor del elemento)/(número del elemento).
Y esto es lo que tengo: