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.

Como pueden ver 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 thoughts on “Ordenamiento rápido (Quick sort) en Ruby

¡Me encantaría saber que opinas!

%d bloggers like this: