A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. Frederico Brito Fernandes Algoritmos de Ordenação CONTEÚDO (1) Auto-avaliação (2) QuickSort (3) MergeSort.

Apresentações semelhantes


Apresentação em tema: "Prof. Frederico Brito Fernandes Algoritmos de Ordenação CONTEÚDO (1) Auto-avaliação (2) QuickSort (3) MergeSort."— Transcrição da apresentação:

1 Prof. Frederico Brito Fernandes Algoritmos de Ordenação CONTEÚDO (1) Auto-avaliação (2) QuickSort (3) MergeSort

2 Frederico Brito Fernandes 2 Estrutura, Pesquisa e Ordenação de Dados Ordenação/Classificação Antes de prosseguir: –Considerando o vetor de inteiros a seguir, execute os algoritmos vistos na aula passada (insertionSort e selectionSort), e escreva as alterações realizadas nesse vetor, em cada iteração realizada (1) Auto-avaliação vetor iteração ª 2ª 3ª 4ª 5ª 6ª...

3 Frederico Brito Fernandes 3 Estrutura, Pesquisa e Ordenação de Dados Dividir e Conquistar É um paradigma geral de projeto de algoritmos: –Dividir: divida os dados de entrada S em dois subconjuntos disjuntos S1 e S2 –Recorrência: resolva os subproblemas associados a S1 e S2, geralmente de forma recursiva –Conquistar: combine as soluções para S1 e S2 em uma solução para S (2) QuickSort

4 Frederico Brito Fernandes 4 Estrutura, Pesquisa e Ordenação de Dados QuickSort É um algoritmo de ordenação baseado no paradigma de dividir e conquistar Encontre um elemento na lista a ser ordenada para servir como o pivô Divida a lista em duas partes - uma com elementos maiores ou iguais ao elemento pivô e a outra com os elementos menores do que pivô. Repita recursivamente o algoritmo para as duas partes da lista original (2) QuickSort

5 Frederico Brito Fernandes 5 Estrutura, Pesquisa e Ordenação de Dados Pseudocódigo Algorithm Quicksort(inicio, fim, v) Input initial position, final position, a sequence v Output the sequence v sorted if (inicio >= fim) then return; indicePivo Partition(inicio, fim, v) Quicksort(inicio, indicePivo-1, v) Quicksort(indicePivo+1, fim, v) Quicksort(0,3,v) Quicksort(5,5,v) Quicksort (0,5,v) Partition (0,5,v) retorna Quicksort(3,3,v) Quicksort(0,1,v) Partition (0,3,v) retorna Quicksort(0,-1) Quicksort(A,1,1) Partition (0,1,v) retorna return (2) QuickSort

6 Frederico Brito Fernandes 6 Estrutura, Pesquisa e Ordenação de Dados Pseudocódigo Partition(inicio, fim, v) Input initial position, final position, a sequence v Output the position of the pivot element i inicio f fim pivo v[inicio] while(i pivo) f f-1 if (i

7 Frederico Brito Fernandes 7 Estrutura, Pesquisa e Ordenação de Dados MergeSort Também chamado de ordenação por intercalação Também baseado no paradigma de dividir e conquistar Divide o vetor a ser ordenado em duas metades aproximadamente iguais Cada metade é ordenada recursivamente e então são intercaladas de volta para formar o vetor final ordenado (3) MergeSort

8 Frederico Brito Fernandes 8 Estrutura, Pesquisa e Ordenação de Dados Princípio: dividir e ordenar (3) MergeSort

9 Frederico Brito Fernandes 9 Estrutura, Pesquisa e Ordenação de Dados Exemplo Realizar Merge-sort em uma sequência de entrada S com n elementos consiste de três passos: –Dividir: particionar S em duas sequências S 1 e S 2 de cerca de n 2 elementos cada –Recorrência: aplicar recursivamente a operação Merge-sort em S 1 e S 2 –Conquistar: intercalar S 1 e S 2 em uma única sequência S ordenada Merge (3) MergeSort

10 Frederico Brito Fernandes 10 Estrutura, Pesquisa e Ordenação de Dados MergeSort - Dividir Algorithm mergeSort(ini, post, S) Input initial position, final position + 1 and sequence S Output sequence S sorted if (ini

11 Frederico Brito Fernandes 11 Estrutura, Pesquisa e Ordenação de Dados MergeSort - Conquistar Algorithm mergeSort(ini, post, S) Input initial position, final position + 1 and sequence S Output sequence S sorted if (ini

12 Frederico Brito Fernandes 12 Estrutura, Pesquisa e Ordenação de Dados Merge Algorithm merge(ini, mid, post, S) W empty sequence of size (post-ini) i ini j mid k 0 while (i < mid) and (j < post) do if (S[i] <= S[j]) then W[k] S[i]k k+1i i+1 else W[k] S[j]k k+1j j+1 while (i < mid) do W[k] S[i]k k+1i i+1 while (j < post) do W[k] S[j] k k+1j j+1 for i ini to post-1 do S[i] W[i-ini]; Return S Merge (3) MergeSort


Carregar ppt "Prof. Frederico Brito Fernandes Algoritmos de Ordenação CONTEÚDO (1) Auto-avaliação (2) QuickSort (3) MergeSort."

Apresentações semelhantes


Anúncios Google