Algoritmos. Número mayor y menor de una serie de enteros. Aplicación en varios lenguajes.
Dedicamos esta nueva entrada «Algoritmos. Número mayor y menor de una serie de enteros» a uno de los algoritmos más comunes: dados una serie de números, averiguar cuál es el mayor y el menor de ellos.
Efectivamente, aplicable a muchas tareas, en este artículo no contamos con que pidamos al usuario que indique esos números (lo dejamos para otra entrada) así como nos restringimos exclusivamente a números enteros tanto positivos como negativos eso sí.
Descripción del algoritmo
Tal y como puede verse en el pseudocódigo y los organigramas, la serie de enteros mostrada es de 10 elementos y con números concretos. Obviamente podemos cambiar tanto el número de elementos como los valores muy fácilmente.
El algoritmo usado para realizar esta tarea es el básico que recorre secuencialmente toda la serie. En consecuencia, se da por hecho que existen algoritmos más eficientes para realizar esta labor.
Más abajo puedes ver el pseudocódigo:
Algoritmo minMaxSerieEnteros
Definir serie Como Entero
Definir maximo Como Entero
Definir minimo Como Entero
Definir totalElementos Como Entero
Definir totalBucle Como Entero
totalElementos <- 10
totalBucle <- totalElementos-1
Dimension numElementos[totalElementos]
numElementos[1] <- 10
numElementos[2] <- 5
numElementos[3] <- 4
numElementos[4] <- 28
numElementos[5] <- 3
numElementos[6] <- 7
numElementos[7] <- 12
numElementos[8] <- 91
numElementos[9] <- 19
numElementos[9] <- 84
maximo <- numElementos[1]
minimo <- numElementos[1]
Para contador<-1 Hasta totalBucle Hacer
Si numElementos[contador]>maximo Entonces
maximo <- numElementos[contador]
FinSi
Si numElementos[contador]
Uso del algoritmo en diferentes lenguajes
Seguidamente, veamos como implementar el algoritmo en diferentes lenguajes. Por supuesto, dependiendo de las funcionalidades de cada lenguaje, hará posible que no sea necesario el uso del algoritmo tal cual.
Comprobaremos que lenguajes como Python, PHP y JavaScript simplifican mucho la tarea, haciendo inútil el algoritmo. En cualquier caso, podemos implementar el algoritmo igualmente.
Otros, como Free Pascal, pueden simplificar la tarea pero implican el uso de elementos muy avanzados como punteros. He optado por implementar el algoritmo tal cual.
Finalmente, en Harbour (Clipper) tenemos como opción ordenar el array y extraer el primer y último elemento de éste para obtener esos valores.
Resumiendo. El algoritmo es bueno y eficaz. Sin embargo, según el lenguaje, tenemos la opción de usar las funcionalidades de éste para disponer de una alternativa más eficiente a la par que eficaz (¡ojo! de todas formas podemos implementar el algoritmo indicado en todos esos lenguajes).
C y C++
Java
Python
PHP
JavaScript
Free Pascal
Harbour, XBase, Clipper
Tal y como se puede comprobar, el algoritmo se basa en recorrer secuencialmente la colección o serie de números enteros.
Seguidamente se va comparando el número encontrado en la colección con el valor máximo y mínimo encontrado hasta ese momento.
Si el valor comparado es mayor o menor al usado como tal hasta ese momento se sustituye.
Conclusión
Finalmente, insistir en el hecho de que el algoritmo mostrado en este artículo no solicita los datos al usuario y únicamente trabaja con enteros. En otra entrada se explicará cómo hacer para pedir los datos al usuario.
Mientras añadimos más contenidos similares, quizás os interesen estos otros:
- Cómo ser desarrollador web (artículo).
- Un Curso de introducción a la programación.
- Otro curso de programación con Free Pascal.
- Y finalmente el curso de programación con C.
En definitiva, nada más. Un saludo y hasta otra.
4 comentarios
al cálculo del mínimo está errado. Funciona sólo si tienes números negativos en el array. Si el menor del array fuese por ejemplo 1 entonces el algoritmo ya no funcionaría.
Hola john. Depende del lenguaje empleado pero el algoritmo, no era del todo correcto. Ya está todo corregido.
Disculpa por la tardanza en aprobar y responder: he tenido problemas con los comentarios. Un saludo y gracias.
Amigo, una consulta. Y si en vez de tener ya los números, el usuario fuese quien introdujera los dígitos? Cómo lo harías?
Hola Mangel:
Depende del lenguaje que uses podrás realizar las cosas de forma diferente, pero en general, solicitando al usuario que introduzca los dígitos u obteniéndolos de otra fuente como un fichero CSV o una consulta a base de datos: dependerá del lenguaje, como hacerlo (por ejemplo, en C con un scanf()). Cada dígito leído se guarda en una colección tipo array, arreglo, vector, lista, etc., también según el lenguaje usado.
Un saludo Mangel.