Pages

viernes, 25 de enero de 2013

Ordenar creciente o decreciente una lista de N números Codigo Fuente en Python

Problema
Hacer un programa o algoritmo.
Se desea realizar un algoritmo que realice las siguientes tareas:
  • Leer una lista de números enteros
  • Visualizar dichos números
  • El algoritmo deberá pedir si yo deseo ordenar en sentido decreciente o creciente (burbuja)
Solución
  • Entrada: 10, 15, 20, 8
  • Salida: decreciente 20 15 10 8
Codigo Fuente en Python
cont,cad,w=0,"",0
N=[]
c=int(input("ingresa la longitud del arreglo\n"))
for i in range(c):
 N.append(0)
while(c!=cont):
 num=int(input("ingresa numero:\n"))
 N[cont]=num
 cont=cont+1
print("numeros ingresados\n")
for j in range(c):
 cad=cad+" "+str(N[j])
print(cad)
print("Seleccione: ")
print("(1) Orden Decreciente")
print("(2) Orden Creciente")
s=int(input())
if(s==1):
 while(w!=(c-1)):
  w=0
  for k in range(0,(c-1)):
   if(N[k]>=N[k+1]):
    w=w+1
   else:
    tem=N[k]
    N[k]=N[k+1]
    N[k+1]=tem
 cad=""
 for j in range(c):
  cad=cad+" "+str(N[j])
 print(cad)
else:
 while(w!=(c-1)):
  w=0
  for k in range(0,(c-1)):
   if(N[k]<=N[k+1]):
    w=w+1
   else:
    tem=N[k]
    N[k]=N[k+1]
    N[k+1]=tem
 cad=""
 for j in range(c):
  cad=cad+" "+str(N[j])
 print(cad)

2 comentarios:

Anónimo dijo...

like man

Anónimo dijo...

Hola, hay uno mucho más fácil y es usando la función nativa de python np
Aquí lo dejo para los que quieran optimizar el algortimo :D


import numpy as np

N = 5
#The set is generated randomly
X = np.random.random(N)
print "Original set:", X
print "Sorted set:", np.sort(X)

Publicar un comentario en la entrada