de linuxmanr4, 4 años han pasado desde su publicación, escrito en Ruby.
Este código es una respuesta a Quick Sort en Ruby de linuxmanr4
- ver diferencias
Enlace corto
http://gw.gd/0wty
Insertar vínculo
  1. #!/usr/bin/env ruby
  2.  
  3. # Aprendiendo ruby de mala manera.
  4. # ================================
  5. #
  6. # Algoritmo de ordenamiento rápido - Quick Sort
  7. #
  8. # Aclaración:
  9. # Ruby es un lenguaje que tiene muchas ventajas, incluyendo metodos de
  10. # ordenamiento, sin embargo, como una forma de irme familiarizando con el
  11. # lenguaje haré algoritmos clásicos de ordenamiento.
  12. #
  13. # Si quieren conocer más detalles sobre este algoritmo, pueden consultar
  14. # la wikipedia https://es.wikipedia.org/wiki/Quicksort
  15. #
  16. # autor: Francisco J. de la Torre (aka LinuxmanR4) web: http://linuxmar4.com
  17. # mar 28 may 2013 13:28:20 CDT
  18. #
  19.  
  20. # a = [99,86,48,16,82,50,25,62,8,45]  #Será ordenado mediante quick sort.
  21. a = 1000000.times.map{ Random.rand(100) }  # Un arreglo con 1 millón de elementos con valores al azar entre 0 y 99
  22.  
  23. class Array
  24.   def quick_sort                    # el métoodo quick_sort será el encargado de ordenar recursivamente el arreglo.
  25.     return self if length <= 1      # si el tamaño del arreglo es menor o igual a 1 no hay nada que ordenar.
  26.     pivote = self[length / 2]       # La elección del pivote en este caso, es el elemento al centro del arreglo.
  27.     find_all { |i| i <  pivote }.quick_sort +   # se ordenan recursivamente todos los elementos más pequeños que el pivote
  28.       find_all { |i| i == pivote } +            # más los elementos que son igual que el pivote
  29.       find_all { |i| i >  pivote}.quick_sort    # y se ordenan recursivamente los elementos más grandes que el pivote
  30.   end
  31. end
  32.  
  33. puts "a = " << a.quick_sort.join(" , ")

Respuestas a Re: Quick Sort en Ruby rss

Título Nombre Lenguaje cuando
Re: Re: Quick Sort en Ruby linuxmanr4 ruby 4 años han pasado desde su publicación.