Estoy buscando un contenedor que proporciona iteraciones desordenadas más rápidas a través de los elementos encapsulados. En otras palabras, "agregar una vez, iterar muchas veces".¿Cuál es la estructura de datos OCaml estándar con la iteración más rápida?
¿Hay alguno entre los módulos estándar de OCaml que sea lo suficientemente rápido (de modo que su posterior optimización sería inútil)? ¿O algún tipo de terceros preparados para GPL?
yo sepa sólo hay un compilador de OCaml, por lo que el concepto de ser es más o menos clara rápido ...
... Pero después vi un par de respuestas, parece, no lo es. Por supuesto, hay muchas estructuras de datos que permiten la iteración O (n) a través del contenedor de tamaño n. Pero la tarea que estoy resolviendo es una de ellas, donde importa la diferencia entre O (n) y O (2n) ;-).
También veo que matrices y listas proporcionan información innecesaria sobre el orden de los elementos añadidos, que no es necesario. Quizás en el "mundo funcional" existen estructuras de datos que pueden intercambiar esta información por un poco de velocidad de iteración.
En C elegiría directamente una matriz simple. La pregunta es, ¿qué debería elegir en OCaml?
1) Para ser pedantes, no hay diferencia entre O (n) y O (2n). Estás hablando de factores constantes. 2) Elegir un orden arbitrario para los elementos y corregirlo, como en una matriz o lista, es exactamente cómo se optimiza para la iteración. ¿Cómo espera mejorar en "incrementar un índice/seguir un puntero, recuperar de la memoria" para la velocidad de iteración? –
1) Sí, estoy hablando de factores constantes, ya que estoy optimizando el cuello de botella; 2) No sé cómo mejorar eso, pero ¿es * it * la forma en que funcionan los módulos Array y List? Array no * dijo * (mientras que * puede * ser * conocido *) para ocupar memoria consecutiva. La lista necesita desreferencia del puntero (¿lento?). Todavía estoy en duda. –
@Pavel: Lo que Chris está diciendo es que estás abusando de la notación de Big O. No está diciendo que no debería preocuparse por factores constantes, solo que debería ser más claro en su notación matemática al referirse a ellos. – bcat