Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5...
Transcript of Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5...
![Page 1: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/1.jpg)
������������������������ �������� �������� �������������������� �������������������� �������� �������� ���������������� Universidade Estadual de Campinas - UNICAMPInstituto de Computacao - IC
Filas de Prioridade
MC202
![Page 2: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/2.jpg)
Topicos
1 Filas de Prioridade
2 Heaps
3 Heapsort
MC202
![Page 3: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/3.jpg)
Filas de Prioridade
• TAD em que cada elemento do conjunto de dados esta associadoa uma prioridade.
– As operacoes basicas relativas a uma fila de prioridade sao:
1 Construcao de uma fila de prioridade a partir de um conjuntocom n itens.
2 Selecao do elemento de maior (menor) prioridade.
3 Insercao de um novo elemento.
4 Remocao do elemento de maior (menor) prioridade.
5 Alteracao do elemento de maior (menor) prioridade.
MC202
![Page 4: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/4.jpg)
Filas de Prioridade
• TAD em que cada elemento do conjunto de dados esta associadoa uma prioridade.
– As operacoes basicas relativas a uma fila de prioridade sao:
1 Construcao de uma fila de prioridade a partir de um conjuntocom n itens.
2 Selecao do elemento de maior (menor) prioridade.
3 Insercao de um novo elemento.
4 Remocao do elemento de maior (menor) prioridade.
5 Alteracao do elemento de maior (menor) prioridade.
MC202
![Page 5: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/5.jpg)
Filas de Prioridade
• TAD em que cada elemento do conjunto de dados esta associadoa uma prioridade.
– As operacoes basicas relativas a uma fila de prioridade sao:
1 Construcao de uma fila de prioridade a partir de um conjuntocom n itens.
2 Selecao do elemento de maior (menor) prioridade.
3 Insercao de um novo elemento.
4 Remocao do elemento de maior (menor) prioridade.
5 Alteracao do elemento de maior (menor) prioridade.
MC202
![Page 6: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/6.jpg)
Filas de Prioridade
• TAD em que cada elemento do conjunto de dados esta associadoa uma prioridade.
– As operacoes basicas relativas a uma fila de prioridade sao:
1 Construcao de uma fila de prioridade a partir de um conjuntocom n itens.
2 Selecao do elemento de maior (menor) prioridade.
3 Insercao de um novo elemento.
4 Remocao do elemento de maior (menor) prioridade.
5 Alteracao do elemento de maior (menor) prioridade.
MC202
![Page 7: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/7.jpg)
Filas de Prioridade
• TAD em que cada elemento do conjunto de dados esta associadoa uma prioridade.
– As operacoes basicas relativas a uma fila de prioridade sao:
1 Construcao de uma fila de prioridade a partir de um conjuntocom n itens.
2 Selecao do elemento de maior (menor) prioridade.
3 Insercao de um novo elemento.
4 Remocao do elemento de maior (menor) prioridade.
5 Alteracao do elemento de maior (menor) prioridade.
MC202
![Page 8: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/8.jpg)
Filas de Prioridade
• TAD em que cada elemento do conjunto de dados esta associadoa uma prioridade.
– As operacoes basicas relativas a uma fila de prioridade sao:
1 Construcao de uma fila de prioridade a partir de um conjuntocom n itens.
2 Selecao do elemento de maior (menor) prioridade.
3 Insercao de um novo elemento.
4 Remocao do elemento de maior (menor) prioridade.
5 Alteracao do elemento de maior (menor) prioridade.
MC202
![Page 9: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/9.jpg)
Filas de Prioridade
• TAD em que cada elemento do conjunto de dados esta associadoa uma prioridade.
– As operacoes basicas relativas a uma fila de prioridade sao:
1 Construcao de uma fila de prioridade a partir de um conjuntocom n itens.
2 Selecao do elemento de maior (menor) prioridade.
3 Insercao de um novo elemento.
4 Remocao do elemento de maior (menor) prioridade.
5 Alteracao do elemento de maior (menor) prioridade.
MC202
![Page 10: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/10.jpg)
Filas de Prioridade
• Estruturalmente, uma fila de prioridade pode ser vista como umaarvore binaria com as seguintes propriedades:
1 E uma arvore binaria completa ou quase completa.
2 Em cada no da arvore, o valor da chave e maior (menor) doque os valores das chaves dos filhos.
MC202
![Page 11: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/11.jpg)
Filas de Prioridade
• Estruturalmente, uma fila de prioridade pode ser vista como umaarvore binaria com as seguintes propriedades:
1 E uma arvore binaria completa ou quase completa.
2 Em cada no da arvore, o valor da chave e maior (menor) doque os valores das chaves dos filhos.
MC202
![Page 12: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/12.jpg)
• Exemplo:
• Heap: Implementacao em vetor
MC202
![Page 13: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/13.jpg)
• Exemplo:
• Heap: Implementacao em vetor
MC202
![Page 14: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/14.jpg)
Heap
• Definicao: Um heap e uma lista linear composta de elementoscom chaves s0, ..., sn−1, satisfazendo a seguinte propriedade:
sb i−12c ≥ si , ∀ 0 < i ≤ n − 1 (max-heap)
ousb i−1
2c ≤ si , ∀ 0 < i ≤ n − 1 (min-heap)
MC202
![Page 15: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/15.jpg)
• Operacoes basicas sobre um heap:
– Subida (O(logn)):
MC202
![Page 16: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/16.jpg)
• Operacoes basicas sobre um heap:
– Subida em vetor (O(logn)):
MC202
![Page 17: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/17.jpg)
• Operacoes basicas sobre um heap:
– Descida (O(logn)):
MC202
![Page 18: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/18.jpg)
• Operacoes basicas sobre um heap:
– Descida em vetor (O(logn)):
MC202
![Page 19: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/19.jpg)
• Operacao Sobe em C:
MC202
![Page 20: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/20.jpg)
• Operacao Desce em C:
MC202
![Page 21: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/21.jpg)
• Construcao de heaps (recebe vetor h e constroi heap): O(nlogn)
MC202
![Page 22: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/22.jpg)
• Insercao em heaps: O(logn)
void InsereHeap(Heap *h, T x) {
vetor[(*h).tam] = x ; /* insere no final do vetor */
((*h).tam)++ ;
Sobe(h, ((*h).tam-1) ; /* coloca x na posicao correta */
} /* InsereHeap */
MC202
![Page 23: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/23.jpg)
• Remocao em heaps: O(logn)
Sempre feita na raiz, retirando-se o elemento de maiorprioridade.A lista passa a ter n − 1 elementos.O ultimo elemento do conjunto e colocado no inıcio da listapara forcar a aparicao do novo elemento de maior prioridade.
MC202
![Page 24: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/24.jpg)
• Remocao em heaps: O(logn)
Sempre feita na raiz, retirando-se o elemento de maiorprioridade.A lista passa a ter n − 1 elementos.O ultimo elemento do conjunto e colocado no inıcio da listapara forcar a aparicao do novo elemento de maior prioridade.
MC202
![Page 25: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/25.jpg)
• Remocao em heaps em C: O(logn)
void RemoveHeap (Heap *h, T *x) {
*x = (*h).vetor[0] ; /* remove a raiz */
((*h).tam)-- ;
(*h).vetor[0] = (*h).vetor[(*h).tam] ;
Desce(h,0) ; /* desce chave na posicao 0 */
} /* RemoveHeap */
MC202
![Page 26: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/26.jpg)
Filas de Prioridade
• Implementacao por heap:
Selecao: O(1)
Insercao: O(logn)
Remocao: O(logn)
Alteracao: O(logn)
Construcao: O(nlogn)
MC202
![Page 27: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/27.jpg)
Filas de Prioridade
• Implementacao por heap:
Selecao: O(1)
Insercao: O(logn)
Remocao: O(logn)
Alteracao: O(logn)
Construcao: O(nlogn)
MC202
![Page 28: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/28.jpg)
Filas de Prioridade
• Implementacao por heap:
Selecao: O(1)
Insercao: O(logn)
Remocao: O(logn)
Alteracao: O(logn)
Construcao: O(nlogn)
MC202
![Page 29: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/29.jpg)
Filas de Prioridade
• Implementacao por heap:
Selecao: O(1)
Insercao: O(logn)
Remocao: O(logn)
Alteracao: O(logn)
Construcao: O(nlogn)
MC202
![Page 30: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/30.jpg)
Filas de Prioridade
• Implementacao por heap:
Selecao: O(1)
Insercao: O(logn)
Remocao: O(logn)
Alteracao: O(logn)
Construcao: O(nlogn)
MC202
![Page 31: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/31.jpg)
Filas de Prioridade
• Implementacao por lista nao ordenada:
Selecao: O(n)
Insercao: O(1)
Remocao: O(n)
Alteracao: O(n)
Construcao: O(n)
MC202
![Page 32: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/32.jpg)
Filas de Prioridade
• Implementacao por lista nao ordenada:
Selecao: O(n)
Insercao: O(1)
Remocao: O(n)
Alteracao: O(n)
Construcao: O(n)
MC202
![Page 33: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/33.jpg)
Filas de Prioridade
• Implementacao por lista nao ordenada:
Selecao: O(n)
Insercao: O(1)
Remocao: O(n)
Alteracao: O(n)
Construcao: O(n)
MC202
![Page 34: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/34.jpg)
Filas de Prioridade
• Implementacao por lista nao ordenada:
Selecao: O(n)
Insercao: O(1)
Remocao: O(n)
Alteracao: O(n)
Construcao: O(n)
MC202
![Page 35: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/35.jpg)
Filas de Prioridade
• Implementacao por lista nao ordenada:
Selecao: O(n)
Insercao: O(1)
Remocao: O(n)
Alteracao: O(n)
Construcao: O(n)
MC202
![Page 36: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/36.jpg)
Filas de Prioridade
• Implementacao por lista nao ordenada:
Selecao: O(n)
Insercao: O(1)
Remocao: O(n)
Alteracao: O(n)
Construcao: O(n)
MC202
![Page 37: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/37.jpg)
Filas de Prioridade
• Implementacao por lista ordenada:
Selecao: O(1)
Insercao: O(n)
Remocao: O(1)
Alteracao: O(n)
Construcao: O(nlogn)
⇒ Estas implementacoes apresentam operacoes importantes decomplexidade O(n).
MC202
![Page 38: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/38.jpg)
Filas de Prioridade
• Implementacao por lista ordenada:
Selecao: O(1)
Insercao: O(n)
Remocao: O(1)
Alteracao: O(n)
Construcao: O(nlogn)
⇒ Estas implementacoes apresentam operacoes importantes decomplexidade O(n).
MC202
![Page 39: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/39.jpg)
Filas de Prioridade
• Implementacao por lista ordenada:
Selecao: O(1)
Insercao: O(n)
Remocao: O(1)
Alteracao: O(n)
Construcao: O(nlogn)
⇒ Estas implementacoes apresentam operacoes importantes decomplexidade O(n).
MC202
![Page 40: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/40.jpg)
Filas de Prioridade
• Implementacao por lista ordenada:
Selecao: O(1)
Insercao: O(n)
Remocao: O(1)
Alteracao: O(n)
Construcao: O(nlogn)
⇒ Estas implementacoes apresentam operacoes importantes decomplexidade O(n).
MC202
![Page 41: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/41.jpg)
Filas de Prioridade
• Implementacao por lista ordenada:
Selecao: O(1)
Insercao: O(n)
Remocao: O(1)
Alteracao: O(n)
Construcao: O(nlogn)
⇒ Estas implementacoes apresentam operacoes importantes decomplexidade O(n).
MC202
![Page 42: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/42.jpg)
Filas de Prioridade
• Implementacao por lista ordenada:
Selecao: O(1)
Insercao: O(n)
Remocao: O(1)
Alteracao: O(n)
Construcao: O(nlogn)
⇒ Estas implementacoes apresentam operacoes importantes decomplexidade O(n).
MC202
![Page 43: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/43.jpg)
Filas de Prioridade
• Implementacao por lista ordenada:
Selecao: O(1)
Insercao: O(n)
Remocao: O(1)
Alteracao: O(n)
Construcao: O(nlogn)
⇒ Estas implementacoes apresentam operacoes importantes decomplexidade O(n).
MC202
![Page 44: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/44.jpg)
Outra aplicacao do heap
• O Heapsort
– Algoritmo:
1 Construir uma fila de prioridade com os elementos a seremordenados,
2 Aplicar remocoes sucessivas dispondo o primeiro elemento(maximal ou minimal) na sua posicao correta (a ultima casado vetor contendo o heap).
/* O Heapsort */
CrontroiHeap(h)
m = tam_heap-1
enquanto m > 0 faca:
Troque h(0) com h(m)
m = m - 1
Desce(0, m)
MC202
![Page 45: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/45.jpg)
Outra aplicacao do heap
• O Heapsort
– Algoritmo:
1 Construir uma fila de prioridade com os elementos a seremordenados,
2 Aplicar remocoes sucessivas dispondo o primeiro elemento(maximal ou minimal) na sua posicao correta (a ultima casado vetor contendo o heap).
/* O Heapsort */
CrontroiHeap(h)
m = tam_heap-1
enquanto m > 0 faca:
Troque h(0) com h(m)
m = m - 1
Desce(0, m)
MC202
![Page 46: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/46.jpg)
Outra aplicacao do heap
• O Heapsort
– Algoritmo:
1 Construir uma fila de prioridade com os elementos a seremordenados,
2 Aplicar remocoes sucessivas dispondo o primeiro elemento(maximal ou minimal) na sua posicao correta (a ultima casado vetor contendo o heap).
/* O Heapsort */
CrontroiHeap(h)
m = tam_heap-1
enquanto m > 0 faca:
Troque h(0) com h(m)
m = m - 1
Desce(0, m)
MC202
![Page 47: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/47.jpg)
Outra aplicacao do heap
• O Heapsort
– Algoritmo:
1 Construir uma fila de prioridade com os elementos a seremordenados,
2 Aplicar remocoes sucessivas dispondo o primeiro elemento(maximal ou minimal) na sua posicao correta (a ultima casado vetor contendo o heap).
/* O Heapsort */
CrontroiHeap(h)
m = tam_heap-1
enquanto m > 0 faca:
Troque h(0) com h(m)
m = m - 1
Desce(0, m)
MC202
![Page 48: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/48.jpg)
• O Heapsort em C: O(nlogn)
MC202
![Page 49: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/49.jpg)
• Exemplo:
MC202
![Page 50: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/50.jpg)
• Exemplo:
MC202
![Page 51: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/51.jpg)
• Exemplo:
MC202
![Page 52: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/52.jpg)
• Exemplo:
MC202
![Page 53: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/53.jpg)
• Exemplo:
MC202
![Page 54: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/54.jpg)
• Exemplo:
MC202
![Page 55: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/55.jpg)
• Exemplo:
MC202
![Page 56: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/56.jpg)
• Exemplo:
MC202
![Page 57: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/57.jpg)
• Exemplo:
MC202
![Page 58: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/58.jpg)
• Exemplo:
MC202
![Page 59: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/59.jpg)
• Exemplo:
MC202
![Page 60: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/60.jpg)
• Exemplo:
MC202
![Page 61: Filas de Prioridade - Instituto de Computaçãoneucimar/cursos/MC202/MC2014-s02/Fi… · 5 Altera˘c~ao do elemento de maior (menor) prioridade. MC202. Filas de Prioridade Estruturalmente,](https://reader033.fdocuments.net/reader033/viewer/2022050209/5f5c3e10ffefd4540561defc/html5/thumbnails/61.jpg)
Referencias:
– Jayme L. Szwarcfiter e Lilian Markenzon. Estruturas de Dados eseus Algoritmos.Editora LTC, 1994.
– Nıvio Ziviani. Projeto de Algoritmos com Implementacoes emPascal e C, Thomson Learning, 2004.
– Apostila dos professores Thomasz e Lucchesi.
MC202