Algoritmos de Ordenação 4 Pietro Martins de Oliveira Departamento de Informática Universidade Estadual de Maringá
Merge Sort Utiliza a abordagem Dividir e Conquistar; Necessita memória auxiliar; A cada chamada recursiva, copia-se um novo vetor; Pior caso: O(n lg n);
Merge Sort Dividir: Conquistar: Divide o arranjo em partes iguais; Junta(merge) as partes, ordenando-as recursivamente;
Merge Sort MergeSort(A,p,r) if p < r then q piso((p+r)/2) MergeSort(A,p,q) MergeSort(A,q+1,r) Merge(A,p,q,r)
Merge Merge(A,p,q,r) nl q-p+1 nr r-q Cria arranjos: L[1...nl+1], R[1...nr+1] Copia A[p...q] em L[1...nl] e L[nl+1] infinito Copia A[q+1...r] em R[1...nr] e R[nr+1] infinito i 1 j 1 for k p to r do if L[i] < R[j] then A[k] L[i] i i+1 else A[k] R[j] j j+1
Merge
Merge