Logotipo de Orbis Sapientia Elearning Services

Servicios de formación. Especialistas en E-learning.

Algoritmos. Número mayor y menor de una serie de enteros

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.

Pseudocódigo
Algoritmo minMaxSerieEnteros
   Definir serie Como Entero
   Definir maximo Como Entero
   Definir minimo Como Entero
   Definir totalElementos Como Entero
   Definir totalBucle Como Entero
   maximo <- 0
   minimo <- 0
   totalElementos <- 10
   totalBucle <- totalElementos-1
   Dimension numElementos[totalElementos]
   numElementos[1] <- 10
   numElementos[2] <- 5
   numElementos[3] <- 1
   numElementos[4] <- 28
   numElementos[5] <- -10
   numElementos[6] <- 7
   numElementos[7] <- 12
   numElementos[8] <- 91
   numElementos[9] <- 19
   numElementos[9] <- 84
   Para contador <- 1 Hasta totalBucle Hacer
      Si numElementos[contador] > maximo Entonces
         maximo <- numElementos[contador]
      FinSi
      Si numElementos[contador]  < minimo Entonces
         minimo <- numElementos[contador]
      FinSi
   FinPara
   Escribir 'El número máximo es: ',maximo
   Escribir 'El número mínimo es: ',minimo
FinAlgoritmo

Organigrama

(Pulsa en la imagen para verla más grande)

Organigrama Nassi-Shneiderman

Algoritmo. Nassi-Shneiderman para hallar el máximo y el mínimo de una serie de enteros

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++

En C:
En C++ (simple): En C++ (avanzado):
En Java sin imports adicionales: En Java (con ArrayList y Collections):

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.

El algoritmo se puede implementar en cualquiera de los lenguajes indicados, sin embargo, algunos lenguajes ofrecen alternativas más eficientes

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:

En definitiva, nada más. Un saludo y hasta otra.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Logotipo de Orbis Sapientia Elearning Services

Protegemos tus datos

En este portal web procesamos datos personales como, por ejemplo, tus datos de navegación. Si sigues navegando por nuestro portal, nosotros y otras compañías seleccionadas, podrán instalar cookies o acceder a información no sensible de tu dispositivo con el objetivo de crear perfiles, personalizar contenidos, servir anuncios adaptados a tus preferencias y elaborar estadísticas. Es imprescindible para acceder al sitio web, aceptar:
Con este acto reconoces que has leído y comprendido todos ellos.
Algunas cookies son esenciales para la carga del portal y que puedas ver este mensaje por lo que ya han sido cargadas.
Si lo deseas, puedes eliminar y bloquear todas las cookies de esta web tal como se indica en las Políticas de cookies, aunque de hacerlo, el portal no funcionará correctamente.