PATROCINADO

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

Algoritmos

Índice de contenidos

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

Organigrama Nassi-Shneiderman

Nassi-Schneiderman. Mayor y menor de una serie de números 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):

Java

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.

4 comentarios

  1. 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.

    1. 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.

    1. 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

Foto Perfil
JOSÉ MANUEL DOMÍNGUEZ ROMERO
Más de 20 años formando y desarrollando, siempre aprendiz, ahora emprendedor que intenta compartir toda esa experiencia y conocimientos.
X

¡¡¡ ÚLTIMAS DONACIONES !!!

🏆 Catalina Gasco Leonarte 🏆

¿Me invitas a un café?

¿Necesitas clases particulares de programación?

Reserva conmigo y recíbelas a través de Skype, Zoom, Hangouts, Discord o similar.

Clases particulares

PATROCINADORES

(Los patrocinadores incluyen enlaces de afiliados, con cuyos servicios llevamos años, sin queja alguna y por tanto contrastados y recomendados por nosotros)

GANA DINERO CON FIVERR