Vous êtes sur la page 1sur 3

Elaborado por:

Espinoza Cerón Brian Arian

Asignatura:

Estructuras de datos y algoritmos II

Grupo: 02

Jorge A. Solano

07 de marzo del 2018


Algoritmo de ordenamiento externo empleado:
Implemente el algoritmo de ordenamiento externo por Intercalación, el cual está
desarrollado por lo siguiente:
En este método de ordenamiento existen dos archivos con llaves ordenadas,
los cuales se mezclan para formar un solo archivo.
-La longitud de los archivos puede ser diferente.
-El proceso consiste en leer un registro de cada archivo y compararlos, el
menor es almacenando en el archivo de resultado y el otro se compara con el
siguiente elemento del archivo si existe. El proceso se repite hasta que alguno
de los archivos quede vacío y los elementos del otro archivo se almacenan
directamente en el archivo resultado

Algoritmo de ordenamiento Externo:


def Case(file1, file2):#Algoritmo externo por Intercalaciòn
global checkIt#contador comparaciones
newfile = []#array que guardara las 2 listas ya ordenadas
a = 0#iterador
b = 0#iterador

while a < len(file1) and b < len(file2):#comprueba que haya elementos en las listas
checkIt += 1#incrementa el contador

if file1[a] < file2[b]:#compara si el primer elemento del array 1 es menor que el primer elemento
del array 2
newfile.append(file1[a])#si se cumple se agregara al array3
a += 1#se incrementa contador de array1
else:
newfile.append(file2[b])#sino se cumple el condicional anterior se agregara el primer elemento
del array 2 al array 3
b += 1#incrementa contador

while a < len(file1):#se comprueba que haya elementos en los array


newfile.append(file1[a])#se agregan los elementos que previamente se ordenaron del array 1
a += 1

while b < len(file2):#se comprueba que haya elementos en los array


newfile.append(file2[b])#se agregan los elementos que previamente se ordenaron del array 2
b += 1

return newfile#retorna el array3 ordenado completamente.

Algoritmo de ordenamiento interno:


def Tars(data):#Algoritmo interno
if len(data) < 2:#compara si el nodo es menor que 2
return data# si es asi, entonces ya esta ordenada
else:
base = data[0]#toma como indice el primer elemento del nodo y lo almacena en base
down = [i for i in data[1:] if i <= base]#itera hasta encontrar un numero mayor que el primer
indice
up = [i for i in data[1:] if i > base]#si encuentra uno mayor que el anterior lo almacena en up
return Tars(down) + [base] + Tars(up)#cuando acabe de iterar juntara las dos variables
anteriores ordenadas

Vous aimerez peut-être aussi