1.Definir un valor a 0
2.Recorrer el array y comparar el valor de cada elemento con el de 0.
3.Como es obvio esperar un valor mayor a 0 cambiamos el valor de 0 al valor del elemento del array.
4.Regresamos al paso 2
#!/usr/bin/env perl
my @prueba = ( 8,1,2,2,6881);
print num_mayor(@prueba),"\n";
sub num_mayor
{
my @array = @_;
my ($n,$mayor) = (0,0); # Definimos dos numeros para trabajar el bucle
while ($n < scalar(@array)) # Recorremos el array
{
if ($mayor >= $array[$n]) # Vemos si es mayor o igual
{
$mayor = $mayor; # Si es asi sigue teniendo su valor
}
else # Si no es asi
{
$mayor = $array[$n]; # Obviamente es menor y le ponemos un nuevo valor
}
$n+=1; # Interaccion
}
return $mayor if ($mayor != 0); # Regresamos valor si no es 0
}
Es simple el algoritmo,y podemos hacerlo en C,PHP,Lua,Javascript,etc,por ejemplo en ruby:
O en python me gusta usar un "truco",voltear la lista y imprimir el primer valor que debería ser el numero mayor:
#!/usr/bin/env python3
prueba = [2,4,3,222,12]
def num_mayor(x):
mayor = sorted(x)
mayor = mayor[::-1]
return mayor[0]
print (num_mayor(prueba))
En perl no se si existen estas funciones,porque hemos hablado de pop,shift,etc pero trabajan diferente,de todas formas me gusta parsear,para ver como funcionan las funciones del lenguaje de programación :D.
Espero que les sirva.
No hay comentarios.:
Publicar un comentario
Los comentarios serán revisados antes de ser publicados.