La propiedad SORT para los Arrays en Ruby, funciona muy bien, pero solo cuando se trata de valores numéricos...Pero que pasa con los alfanuméricos? Pues falla miserablemente...
Lo que debemos hacer, es nuestro propio algoritmo de burbuja y convertir los valores a enteros antes del ordenamiento.
Vean el código fuente y la imagen del resultado...
$Files = Array.new
$Files = ["1.txt","10.txt","2.txt","3.txt","4.txt","11.txt",
"12.txt","5.txt","6.txt","7.txt","8.txt","9.txt"]
$count = 0
$counter = 0
$Files.sort!
for file in $Files
puts file
end
puts "--------------------------"
for file in $Files
$count = 0
for do_file in $Files
if $Files[$count].to_i > $Files[$counter].to_i
$aux = $Files[$count]
$Files[$count] = $Files[$counter]
$Files[$counter] = $aux
end
$count += 1
end
$counter += 1
end
for file in $Files
puts file
end
Como pueden ver, el primero es el SORT de Ruby y el segundo es mi algoritmo -;)
Saludos,
Blag.
3 comments:
Hola, llegué a tu blog buscando cosas de Ruby. Quería comentarte que el swap entre dos variables lo podés hacer con a,b = b,a.
Saludos
Muchas gracias por los comentatios, realmente los agradezco -:)
La verdad, aunque me encanta Ruby, definitivamente no soy ningún experto y aún me quedan muchas cosas por aprender.
En realidad, hice el programa inicialmente en ABAP y no en PHP o ASP...Lo del símbolo del $, es porque en realidad me gusta programarlo así, puesto que diferencio las variables normales de las constantes -:D
He leído muchos libros sobre Ruby, pero a veces cuando un programa en varios lenguajes, tiende a mezclarlos y utilizar formatos de unos en otros -;)
Saludos,
Blag.
Jajaja...Voy a tomar muy en cuenta todas tus recomendaciones para mis futuros desarrollos en Ruby -:)
Aunque dudo mucho que deje de programar en PHP, Flex o ABAP... -;)
Saludos,
Blag.
Post a Comment