viernes, 14 de agosto de 2015

HEAPSORT

#CRISANTO TIBURCIO YOVANA
#HEAPSORT
#DEFINICION DE FUNCIONES
def heapsort(lista,tam):
    for k in range(tam-1,-1,-1):
        for i in range(0,k):
            item=lista[i]
            j=(i+1)/2
            while j>=0 and lista[j]<item:
                lista[i]=lista[j]
                i=j
                j=j/2
            lista[i]=item
        temp=lista[0];
    lista[0]=lista[k];
    lista[k]=temp;
 
def imprimeLista(lista,tam):
    for i in range(0,tam):
        print lista[i]
 
def leeLista():
    lista=[]
    cn=int(raw_input("Cantidad de numeros a ingresar: "))
 
    for i in range(0,cn):
        lista.append(int(raw_input("Ingrese numero %d : " % i)))
    return lista
 #PROGRAMA PRINCIPAL
A=leeLista()
heapsort(A,len(A))
imprimeLista(A,len(A))

SELECTION SORT

#YOVANA CRISANTO TIBURCIO
#SELECTION SORT
#DEFINICION DE FUNCIONES
def selectionsort(lista,tam):
    for i in range(0,tam-1):
        min=i
        for j in range(i+1,tam):
            if lista[min] > lista[j]:
                min=j
        aux=lista[min]
        lista[min]=lista[i]
        lista[i]=aux
 
def imprimeLista(lista,tam):
    for i in range(0,tam):
        print lista[i]
 
def leeLista():
    lista=[]
    cn=int(raw_input("Cantidad de numeros a ingresar: "))
 
    for i in range(0,cn):
        lista.append(int(raw_input("Ingrese numero %d : " % i)))
    return lista
#PROGRAMA PRINCIPAL
 
A=leeLista()
selectionsort(A,len(A))
imprimeLista(A,len(A))

SHELL

#YOVANA CRISANTO TIBURCIO
#INSERCTION SORT
#DEFINICION DE FUNCIONES
def insercionDirecta(lista,tam):
    for i in range(1,tam):
        v=lista[i]
        j=i-1
        while j >= 0 and lista[j] > v:
            lista[j+1] = lista[j]
            j=j-1
        lista[j+1]=v
def imprimeLista(lista,tam):
    for i in range(0,tam):
        print lista[i]
def leeLista():
    lista=[]
    cn=int(raw_input("Cantidad de numeros a ingresar: "))
    for i in range(0,cn):
        lista.append(int(raw_input("Ingrese numero %d : " % i)))
    return lista
#PROGRAMA PRINCIPAL
A=leeLista()
insercionDirecta(A,len(A))
imprimeLista(A,len(A))

QUICKSORT

#CRISANTO TIBURCIO YOVANA
#QUICKSORT 
#DEFINICION DE FUNCIONES
def quicksort(lista,izq,der):
    i=izq
    j=der
    x=lista[(izq + der)/2]
 
    while( i <= j ):
        while lista[i]<x and j<=der:
            i=i+1
        while x<lista[j] and j>izq:
            j=j-1
        if i<=j:
            aux = lista[i]; lista[i] = lista[j]; lista[j] = aux;
            i=i+1;  j=j-1;
 
        if izq < j:
        quicksort( lista, izq, j );
    if i < der:
        quicksort( lista, i, der );
 
def imprimeLista(lista,tam):
    for i in range(0,tam):
        print lista[i]
 
def leeLista():
    lista=[]
    cn=int(raw_input("Cantidad de numeros a ingresar: "))
 
    for i in range(0,cn):
        lista.append(int(raw_input("Ingrese numero %d : " % i)))
    return lista
 #PROGRAMA PRINCIPAL
A=leeLista()
quicksort(A,0,len(A)-1)
imprimeLista(A,len(A))

SELECTION SORT

#CRISANTO TIBURCIO YOVANA
#SELECTION SORT
#DEFINICION DE FUNCIONES
def ordenShell(lista,tam):
    inc=1
    for inc in range(1,tam,inc*3+1):
        while inc>0:
            for i in range(inc,tam):
                j=i
                temp=lista[i]
                while j>=inc and lista[j-inc]>temp:
                    lista[j]=lista[j-inc]
                    j=j-inc
                lista[j]=temp
            inc=inc/2
 
def imprimeLista(lista,tam):
    for i in range(0,tam):
        print lista[i]
 
def leeLista():
    lista=[]
    cn=int(raw_input("Cantidad de numeros a ingresar: "))
 
    for i in range(0,cn):
        lista.append(int(raw_input("Ingrese numero %d : " % i)))
    return lista

Bubble Sort

#YOVANA CRISANTO TIBURCIO
#BUBBLE SORT 
#DEFINICION DE FUNCIONES
 
def ordenamientoBurbuja(lista,tam):
    for i in range(1,tam):
        for j in range(0,tam-i):
            if(lista[j] > lista[j+1]):
                k = lista[j+1]
                lista[j+1] = lista[j]
                lista[j] = k;
 
def imprimeLista(lista,tam):
    for i in range(0,tam):
        print lista[i]
 
def leeLista():
    lista=[]
    cn=int(raw_input("Cantidad de numeros a ingresar: "))
 
    for i in range(0,cn):
        lista.append(int(raw_input("Ingrese numero %d : " % i)))
    return lista
 #PROGRAMA PRINCIPAL
A=leeLista()
ordenamientoBurbuja(A,len(A))
imprimeLista(A,len(A))