Beruflich Dokumente
Kultur Dokumente
Ordenao Externa
A ordenao externa consiste em ordenar arquivos de tamanho maior que a memria interna disponvel.
Ordenao Externa
Estrutura de Dados II Prof. Guilherme Tavares de Assis
Universidade Federal de Ouro Preto UFOP Instituto de Cincias Exatas e Biolgicas ICEB Departamento de Computao DECOM
1
Ordenao Externa
Fatores que determinam as diferenas das tcnicas de ordenao externa em relao ordenao interna:
Custo de acesso a memria secundria muito maior do que o acesso a memria primria.
O custo principal na ordenao externa est relacionado transferncia de dados entre a memria interna e externa.
Ordenao Externa
O mtodo mais importante de ordenao externa o de ordenao por intercalao.
Intercalar significa combinar dois ou mais blocos ordenados em um nico bloco ordenado. A intercalao utilizada como uma operao auxiliar na ordenao.
O foco dos algoritmos para ordenao externa reduzir o nmero de passadas sobre o arquivo.
Uma boa medida de complexidade de um algoritmo de ordenao por intercalao o nmero de vezes que um item lido ou escrito na memria interna. Os bons mtodos de ordenao externa geralmente envolvem menos do que dez passadas sobre o arquivo.
3 4
Ordenao Externa
Estratgia geral dos mtodos de ordenao externa:
1.
Quebre o arquivo em blocos do tamanho da memria interna disponvel. Ordene cada bloco na memria interna. Intercale os blocos ordenados, fazendo vrias passadas sobre o arquivo.
A cada passada so criados blocos ordenados cada vez maiores, at que todo o arquivo esteja ordenado.
2. 3.
Consideraes:
memria interna com capacidade para trs itens; seis unidades disponveis de fita magntica.
Leitura do primeiro registro de cada fita. Retirada do registro contendo a menor chave, armazenando-o em uma fita de sada. Leitura de um novo registro da fita de onde o registro retirado proveniente.
Ao ler o terceiro registro de um dos blocos, a fita correspondente fica inativa. A fita reativada quando o terceiro registro das outras fitas forem lidos. Neste momento, um bloco de nove registros ordenados foi formado na fita de sada.
Memria: ordenao de E R C
7
4.
Repetindo o processo de intercalao nos blocos formados aps a 1 passada sobre o arquivo, tem-se o arquivo ordenado (2 passada sobre o mesmo):
Fita 1: A A A A A A A B C C C D E E I L L N N O R T Fita 2: Fita 3:
Quando um item marcado vai para o topo da fila, o bloco corrente encerrado e um novo bloco ordenado iniciado.
13
Bloco 4: A A C E N Bloco 5: A A D
14
15
16
Consideraes Prticas
As operaes de entrada e sada de dados devem ser implementadas eficientemente.
Deve-se procurar realizar a leitura, a escrita e o processamento interno dos dados de forma simultnea.
Consideraes Prticas
Escolha da ordem de intercalao f:
Fitas magnticas:
f deve ser igual ao nmero de unidades de fita disponveis menos um, j que a fase de intercalao pode usar f fitas de entrada e uma fita de sada. O nmero de fitas de entrada deve ser no mnimo dois.
Os computadores de maior porte possuem uma ou mais unidades independentes para processamento de entrada e sada.
Assim, pode-se realizar processamento e operaes de E/S simultaneamente.
Discos magnticos:
Mesmo raciocnio apresentado, porm o acesso direto menos eficiente que o sequencial.
Sedegwick (1988) sugere considerar f grande o suficiente para completar a ordenao em poucos passos.
Porm, a melhor escolha para f depende de parmetros relacionados com o sistema de computao disponvel.
17 18
Intercalao Polifsica
Problemas com a intercalao balanceada de vrios caminhos:
Necessita de um grande nmero de fitas, fazendo vrias leituras e escritas entre as fitas envolvidas.
Para uma intercalao balanceada de f caminhos so necessrias, geralmente, 2f fitas. Alternativamente, pode-se copiar o arquivo de uma nica fita de sada para f fitas de entrada, reduzindo o nmero de fitas para f + 1.
Intercalao Polifsica
Processo de funcionamento da intercalao polifsica:
Os blocos ordenados so distribudos de forma desigual entre as fitas disponveis. Uma fita deixada livre. Em seguida, a intercalao de blocos ordenados executada at que uma das fitas de entrada se esvazie. A fita vazia torna-se a prxima fita de sada.
19
20
Intercalao Polifsica
Blocos ordenados obtidos por meio de seleo por substituio:
Fita 1: I N R T Fita 2: A A C E N Fita 3: A C E L A A D A A B C L O
Intercalao Polifsica
Intercalao-de-2-caminhos das fitas 2 e 3 para a fita 1:
Fita 1: A A A A A A A B C C C D E E I L L N N O R T Fita 2: Fita 3:
Observaes:
A intercalao realizada em muitas fases. As fases no envolvem todos os blocos. Nenhuma cpia direta entre fitas realizada.
A A A C D E L
22
Intercalao Polifsica
A implementao da intercalao polifsica simples. A parte mais delicada est na distribuio inicial dos blocos ordenados entre as fitas. No exemplo apresentado, a distribuio dos blocos nas diversas etapas foi:
fita1 fita2 fita3 total 3 2 0 5 1 0 2 3 0 1 1 2 1 0 0 1
Intercalao Polifsica
Anlise:
A anlise da intercalao polifsica complicada. O que se sabe que ela ligeiramente melhor do que a intercalao balanceada para valores pequenos de f. Para valores de f > 8, a intercalao balanceada de vrios caminhos pode ser mais rpida.
23
24
Quicksort Externo
Quicksort externo foi proposto por Monard em 1980. O algoritmo utiliza o paradigma de diviso e conquista. O algoritmo ordena in situ um arquivo A = {R1, ... , Rn} de n registros.
Os registros encontram-se armazenados consecutivamente em memria secundria de acesso randmico.
Quicksort Externo
Para ordenar o arquivo A = {R1, ... , Rn}, o algoritmo:
particiona A da seguinte forma: {R1, ... , Ri} Ri+1 Ri+2 ... Rj2 Rj1 {Rj, ... , Rn}; chama recursivamente o algoritmo em cada um dos subarquivos gerados: A1 = {R1, . . . ,Ri} e A2 = {Rj , . . . ,Rn}.
O algoritmo utiliza somente O(log n) unidades de memria interna, no sendo necessria alguma memria externa adicional.
Os registros ordenados {Ri+1, ..., Rj-1} correspondem ao piv do algoritmo, encontrando-se na memria interna durante a execuo do mesmo.
Os subarquivos A1 e A2 contm os registros menores que Ri+1 e maiores que Rj-1, respectivamente.
25 26
Quicksort Externo
Para a partio do arquivo, utilizada uma rea de memria interna para o armazenamento do piv.
Tamanho da rea = j i 1, sendo necessariamente 3.
27
Para garantir que os apontadores de escrita estejam atrs dos apontadores de leitura, a ordem alternada de leitura interrompida se (Li = Ei) ou (Ls = Es).
Nenhum registro pode ser destrudo durante a ordenao in situ.
30
O objetivo escrever o registro removido da memria no subarquivo de menor tamanho, no intuito de dividir A de forma uniforme e, assim, balancear a rvore gerada pelas recurses.
Isso minimiza a quantidade de operaes de leitura e escrita efetuadas pelo algoritmo.
31 32
33
34
35
36
37
38