Ordenamiento rápido (Quick sort) en Ruby

Ordenamiento rápido o Quick sort es otro algoritmo clásico de ordenamiento.

Animación del algoritmo quick sort – wikipedia

En este algoritmo se usa un pivote que sirve para separar el arreglo, con el fin de dividir el ordenamiento en partes más pequeñas. La elección del pivote se puede realizar de varias maneras, pero en este caso elegí la más sencilla que es el elemento que esta en medio del arreglo.

Como pueden ver, el manejo de arreglos que hace Ruby esta para dar miedo, luego viene la recursividad que es básicamente cuando el método se llama nuevamente a sí mismo.

Hay varias curiosidades en este ejemplo.

  • self es un objeto muy interesante, porque en ruby, durante cada instrucción, solo se puede manejar un objeto a la vez y self es ese objeto. Durante la recursividad se van a manejar una gran cantidad de subarreglos más pequeños, de esta manera logramos hacerlo sin declarar otra variable.
  • El método find_all que devuelve otro arreglo que cumpla con la condición, en este caso valores más grandes o pequeños que el pivote.

Como pueden ver Ruby es un lenguaje con un alto nivel de optimización, entre más lo conozco, más quiero seguir aprendiendo.

Referencias.

5 comentarios en «Ordenamiento rápido (Quick sort) en Ruby»

    • Se tarda más en mostrar los datos que en ordenarlos 🙂

      http://gw.gd/0wty

      Ambos sabemos que hay varios algoritmos de ordenamiento, este por ejemplo, resulta mejor que el de burbuja.

      En mi equipo tardó 2.11438054 segundos en terminar el ordenamiento.( http://gw.gd/Ve0v )

      Responder

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.