# ejercicio 2_9

# carga una lista "a" con datos y llena una lista auxiliar "p" puntero con el orden en el que fue cargado
# mientras que "a" se mantiene est'atico en el tiempo, el ordenamiento se realiza intercambiando los punteros.
 
import os

os.system("clear")

def imprime(x):
    for i in range(len(x)):
        print i,x[i]
    print

a=[]
p=[]
flag=0
i=0
while flag==0:
    dum=raw_input("Ingrese un valor numerico, con letra sale:")
    #print type(dum)
    if dum.isdigit():
        a.append(dum)
        p.append(i)
        i=i+1
    else:
        flag=1
    

print "Datos desordenados"
imprime(a)
imprime(p)

# bubble sort fijo

for j in range(len(a)-1):
    for i in range(len(a)-1):
        if a[p[i]]>a[p[i+1]]:
            tacho=p[i+1]
            p[i+1]=p[i]
            p[i]=tacho

print "Datos ordenados"
print "{:>10} {:>10} {:>10} {:>10}".format("I","Data","Point","Dat>Point")
for i in range(len(a)):
    print "{:>10} {:>10} {:>10} {:>10}".format(i,a[i],p[i],a[p[i]])
    
exit()
