viernes, 18 de septiembre de 2015

Implementación de un monticulo o heap en javascript.

El montículo es una estructura que siempre tiene como primer elemento el mayor, o el mínimo si es un montículo de mínimos, con un coste muy bajo. Para más información os animo a empezar por wikipedia.

Características de la implementación:
  1. Al construir el montón se debe pasar un boolean con valor true si se quiere que sea de máximos, sino será de mínimos.
  2. Los objetos se insertarán en el heap dentro de un envoltorio (collections.Heap.element) junto con una función que que acepte un parámetro y devuelva true si el objeto "envuelto" es menor que el parámetro.
  3. La estructura binaryHeap forma parte del módulo collections al que se irán añadiendo otras.
En este enlace se puede descargar un rar que contiene la implementación de la estructura y unos test con QUnit.

Lo siguiente es un ejemplo de su utilización:


    var q = new collections.Heap(true);

    function isSmallerFunction(other){
      return this.value < other.value;
    };
    q.insert(new q.element(5, isSmallerFunction));
    q.insert(new q.element(3, isSmallerFunction));
    q.insert(new q.element(7, isSmallerFunction));
    q.insert(new q.element(1, isSmallerFunction));
    q.insert(new q.element(8, isSmallerFunction));
    q.insert(new q.element(8, isSmallerFunction));
    q.insert(new q.element(9, isSmallerFunction));
    q.insert(new q.element(0, isSmallerFunction));

    console.log(q.toString());
    
    while(q.size > 0 ){
      var aux = q.pop();
      console.log(aux.value);
    }

jueves, 26 de junio de 2014

Integración de test QUnit con JUnit 4

En esta entrada (http://misiniciosenjava.blogspot.com.es/p/blog-page_26.html) tienes una prueba de concepto de la integración del resultado test de QUnit con el reporte de test de JUnit de una forma muy muy sencilla.
Integración de los resultados de test de QUnit en el reporte de JUnit.

viernes, 14 de junio de 2013

domingo, 24 de febrero de 2013

Algoritmos divide y vencerás.

¿Conoces los algoritmos del tipo divide y vencerás? En la sección "Algo de algoritmos" tienes una entrada con ejemplos de este tipo de algoritmos.

viernes, 25 de mayo de 2012

I/O Streams y filtros

Como primera aportación estoy elaborando un pequeño artículo sobre la utilización de streams y filtros, que se puede ver en la sección de artículos o a través de este enlace.
Mi intención es tanto explicar los streams como poner algún ejemplo, por lo que ruego un poco de paciencia.