Ordenamiento y máximos y mínimos de un arreglo con Python

Releyendo la bibliografía de Python a menudo me encuentro con aspectos importantes que resaltar producto de la sencillez con la cual se pueden llevar a cabo ciertas tareas; que en otros lenguajes ameritaría muchas más líneas de código. Una de ellas tiene que ver con los algoritmos de ordenamiento que ya están incluidos dentro del propio lenguaje sin necesidad de recurrir a ningún módulo adicional. Por ejemplo, supongamos que se tiene el siguiente array, [5, 2, 3, 7, 8, 1], el cual queremos ordenar. Basta con ejecutar este código:

array = [5, 2, 3, 7, 8, 1]

temp = array

temp.sort()

print temp

y se obtiene como resultado [1, 2, 3, 5, 7, 8]. El arreglo temp es una copia por si se quiere utilizar array más adelante en cualquier otra operación. Con la función reverse se puede invertir el orden del arreglo temp:

array = [5, 2, 3, 7, 8, 1]

temp = array

temp.sort()

print temp

temp.reverse()

print temp

obteniendo la siguiente salida:

[1, 2, 3, 5, 7, 8]
[8, 7, 5, 3, 2, 1]

El primer termino de cada uno de esos arreglos es el mínimo y el máximo del arreglo original array. Con esto se puede hacer una función que retorne el mínimo y el máximo del arreglo, sólo para ejemplificar el uso de sort y reverse porque el lenguaje tiene sus funciones reservadas para ello (min y max), con este código:

#*-* coding: utf-8

def MinMax(array):

	array.sort()

	min_ = array[0]

	array.reverse()

	max_ = array[0]

	return min_, max_

#Comienzo del programa

A = [5, 2, 3, 7, 8, 1]

min_,max_ = MinMax(A)

#Usando la función creada
print "El mínimo es = %d\nEl máximo es = %d" % (min_,max_)

#Usando las funciones propias de Python
print "El mínimo es = %d\nEl máximo es = %d" % (min(A),max(A))

Otra forma de hacer lo mismo es con sorted y reversed; tal como se encuentra a continuación:

#-*- coding: utf-8

def MinMax(lista):

	lista_ord = []
	lista_rev = []

	for numero in sorted(lista):
		lista_ord.append(numero)

	min_ = lista_ord[0]

	for numero in reversed(lista_ord):
		lista_rev.append(numero)
	
	max_ = lista_rev[0]

	return min_, max_

#Comienzo del programa

text = "esta es una cosa" 

words = text.split()

#Ordenamiento usando strings
for word in sorted(words):
	print word

A = [3,8,7,1,0,5]

min_,max_ = MinMax(A)

print "El mínimo es = %d\nEl máximo es = %d" % (min_,max_)

cuyo resultado es el siguiente:

cosa
es
esta
una
El mínimo es = 0
El máximo es = 8
Esta entrada fue publicada en Código Python, Software Libre. Guarda el enlace permanente.

Una respuesta a Ordenamiento y máximos y mínimos de un arreglo con Python

  1. Pingback: Ordenamiento y máximos y mínimos ...

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s