domingo, 24 de mayo de 2015

ALGORITMO 7
ORDENAMIENTO EREW RECURSIVO CON MERGE SECUENCIAL


#ORDENAMIENTO EREW RECURSIVO CON MERGE SECUENCIAL
#OSCAR SALGADO ALAMILLA

import os


#DEFINICION DE FUNCIONES
def mergeSort(alist):
    print("DIVIDIENDO ",alist)
    if len(alist)>1:
        mid = len(alist)//2
        lefthalf = alist[:mid]
        righthalf = alist[mid:]

        mergeSort(lefthalf)
        mergeSort(righthalf)

        i=0
        j=0
        k=0
        while i<len(lefthalf) and j<len(righthalf):
            if lefthalf[i]<righthalf[j]:
                alist[k]=lefthalf[i]
                i=i+1
            else:
                alist[k]=righthalf[j]
                j=j+1
            k=k+1

        while i<len(lefthalf):
            alist[k]=lefthalf[i]
            i=i+1
            k=k+1

        while j<len(righthalf):
            alist[k]=righthalf[j]
            j=j+1
            k=k+1
    print("UNIENDO ",alist)


#PRINCIPAL
print "======= ORDENAMIENTO EREW RECURSIVO CON MERGE SECUENCIAL ======="
alist = []
x=int(raw_input("INGRESE EL TAMANO DEL VECTOR: "))
i=1
while (i<=x):
    n=int(raw_input("INGRESE DIGITO: "))
    alist.append(n)
    i=i+1
               
     
print 'MOSTRANDO EL VECTOR DE DIGITOS ORDENADOS: '
print(alist)

os.system('pause')

No hay comentarios:

Publicar un comentario