MergeSort en python
def mergeSort(nums):print("Separando -> ",nums)
if len(nums)>1:
medio = len(nums)//2
izqmedio = nums[:medio]
dermedio = nums[medio:]
mergeSort(izqmedio)
mergeSort(dermedio)
i=0
j=0
k=0
while i < len(izqmedio) and j < len(dermedio):
if izqmedio[i] < dermedio[j]:
nums[k]=izqmedio[i]
i=i+1
else:
nums[k]=dermedio[j]
j=j+1
k=k+1
while i < len(izqmedio):
nums[k]=izqmedio[i]
i=i+1
k=k+1
while j < len(dermedio):
nums[k]=dermedio[j]
j=j+1
k=k+1
print("Combinando -> ",nums)
nums = [34,67,56,2,34,5,6,78,90,9]
print "La lista desordenada es: ",(nums)
mergeSort(nums)
QuickSort en python
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 LeerLista():
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
A=LeerLista()
Quicksort(A,0,len(A)-1)
imprimeLista(A,len(A))
No hay comentarios:
Publicar un comentario