{"id":1377416,"date":"2024-04-24T11:00:00","date_gmt":"2024-04-24T14:00:00","guid":{"rendered":"https:\/\/www.estrategiaconcursos.com.br\/blog\/?p=1377416"},"modified":"2024-04-01T16:22:45","modified_gmt":"2024-04-01T19:22:45","slug":"filas-prioridades-heap-cnu-ti","status":"publish","type":"post","link":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/","title":{"rendered":"Filas de prioridades (heap) para o CNU (TI)"},"content":{"rendered":"\n<p>As estruturas de dados s\u00e3o fundamentais na ci\u00eancia da computa\u00e7\u00e3o, permitindo a organiza\u00e7\u00e3o eficiente e manipula\u00e7\u00e3o de informa\u00e7\u00f5es. Entre essas estruturas, as filas de prioridade desempenham um papel crucial em uma ampla gama de algoritmos e aplica\u00e7\u00f5es. Neste artigo, exploraremos as filas de prioridade, assunto este que est\u00e1 no edital do CNU e j\u00e1 foi cobrado pela banca <a href=\"https:\/\/www.cesgranrio.org.br\/concursos\/principal.aspx\">Cesgranrio<\/a>. Teremos foco especial na implementa\u00e7\u00e3o usando uma estrutura de dados conhecida como heap.<\/p>\n\n\n\n<p>Este artigo est\u00e1 organizado da seguinte maneira:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Introdu\u00e7\u00e3o \u00e0s Filas de Prioridade<\/li>\n\n\n\n<li>O que \u00e9 um Heap?<\/li>\n\n\n\n<li>Tipos de Heap<\/li>\n\n\n\n<li>Propriedades do Heap<\/li>\n\n\n\n<li>Como implementar um Heap?<\/li>\n\n\n\n<li>Opera\u00e7\u00f5es com Heap: Passo a Passo<\/li>\n\n\n\n<li>Aplica\u00e7\u00f5es de Heaps<\/li>\n\n\n\n<li>Conclus\u00e3o<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-introducao-as-filas-de-prioridade\"><strong>Introdu\u00e7\u00e3o \u00e0s Filas de Prioridade<\/strong><\/h2>\n\n\n\n<p>As filas de prioridade s\u00e3o estruturas de dados nas quais os elementos s\u00e3o organizados de acordo com uma determinada prioridade. Essa prioridade pode ser definida por diversos crit\u00e9rios, dependendo da aplica\u00e7\u00e3o. Por exemplo, em um sistema de atendimento em um hospital, pacientes com condi\u00e7\u00f5es mais graves podem ter prioridade sobre aqueles com condi\u00e7\u00f5es menos urgentes.<\/p>\n\n\n\n<p>Essa flexibilidade torna as filas de prioridade incrivelmente vers\u00e1teis e aplic\u00e1veis em uma variedade de cen\u00e1rios, desde algoritmos de busca at\u00e9 sistemas de gerenciamento de tarefas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-o-que-e-um-heap\"><strong>O que \u00e9 um Heap?<\/strong><\/h2>\n\n\n\n<p>Uma das maneiras mais comuns de implementar filas de prioridade \u00e9 usando uma estrutura de dados chamada heap. Um heap \u00e9 uma \u00e1rvore bin\u00e1ria especial, onde cada n\u00f3 satisfaz uma propriedade espec\u00edfica de ordena\u00e7\u00e3o, conhecida como propriedade de heap.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-tipos-de-heaps\"><strong>Tipos de Heaps<\/strong><\/h2>\n\n\n\n<p>Existem dois tipos principais de heaps: o heap m\u00e1ximo e o heap m\u00ednimo.&nbsp;<\/p>\n\n\n\n<p>Em um heap m\u00e1ximo, o elemento de maior valor est\u00e1 sempre na raiz da \u00e1rvore, enquanto em um heap m\u00ednimo, o elemento de menor valor ocupa a raiz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-propriedades-do-heap\"><strong>Propriedades do Heap<\/strong><\/h2>\n\n\n\n<p>As propriedades fundamentais de um heap s\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Propriedade de Estrutura<\/strong>: Um heap \u00e9 uma \u00e1rvore bin\u00e1ria completa, preenchida da esquerda para a direita. Uma \u00e1rvore completa \u00e9 aquela em que todos os n\u00edveis da \u00e1rvore est\u00e3o completamente preenchidos, exceto possivelmente o \u00faltimo n\u00edvel.<br \/><\/li>\n\n\n\n<li><strong>Propriedade de Heap<\/strong>: Em um heap m\u00e1ximo, o valor de um n\u00f3 \u00e9 maior ou igual ao valor de seus filhos. E o oposto \u00e9 verdadeiro para um heap m\u00ednimo.<\/li>\n<\/ul>\n\n\n\n<p>Essas propriedades garantem que o elemento de maior (ou menor) prioridade esteja sempre na raiz do heap, permitindo um acesso r\u00e1pido e eficiente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-como-um-heap-e-implementado\"><strong>Como um heap \u00e9 implementado?<\/strong><\/h2>\n\n\n\n<p>A implementa\u00e7\u00e3o de um heap pode ser feita de v\u00e1rias maneiras, mas uma das mais comuns \u00e9 usando um vetor. Nessa abordagem, os elementos do heap s\u00e3o armazenados em um vetor, onde a rela\u00e7\u00e3o de pai-filho \u00e9 mantida atrav\u00e9s do c\u00e1lculo de \u00edndices.<\/p>\n\n\n\n<p>Considerando um heap em um vetor, com este iniciando com \u00edndice 1 (um), para um n\u00f3 armazenado no \u00edndice i desse vetor:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>O pai de i est\u00e1 em i \/ 2. Caso o resultado seja um decimal, considere somente a parte inteira. Por exemplo, para encontrarmos o pai do n\u00f3 de \u00edndice 1 fazemos o seguinte c\u00e1lculo: 1 \/ 2 = 0,5. Assim, o pai ter\u00e1 o \u00edndice 0, pois a parte inteira de 0,5 \u00e9 0 (zero).<\/li>\n\n\n\n<li>O filho esquerdo de i est\u00e1 em 2*i.<\/li>\n\n\n\n<li>O filho direito de i est\u00e1 em 2*i+1.<\/li>\n<\/ul>\n\n\n\n<p>Perceba que estamos considerando que o heap come\u00e7a pelo \u00edndice 1. Caso o heap inicie com o \u00edndice 0 (zero), os valores ser\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pai: (i &#8211; 1)\/2.<\/li>\n\n\n\n<li>Filho esquerdo: 2*i + 1;<\/li>\n\n\n\n<li>Filho direito: 2*i + 2;<\/li>\n<\/ul>\n\n\n\n<p>Para todos os exemplos aqui explicitados, iremos considerar que o heap inicia com pelo \u00edndice 1.<\/p>\n\n\n\n<p>A seguir temos um exemplo de um heap em uma estrutura de \u00e1rvore:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/imRakMOBg4pSkfjiqwuZl_YB1C9A_Z3xMT6er8HiP6VKUZNxHXdQ-9JZRhifvIhUJl1BQCUsrvVee_dsxDLhahBy8PsvySZ3lvDD-IC-95BTJ-K2YzgwzFH5xlT3nQZSPEFcZbqprw3QyoBQ497_3ZA\" alt=\"Heap em \u00e1rvore bin\u00e1ria\"\/><\/figure>\n\n\n\n<p>Agora, temos o mesmo heap representado por um vetor:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/i2NvykeD6qwXGsNotTaT_20ay4uZPVMjwmvTnirnQWK9L3tS7ZDI-59EFWbHuBj0KQW9Wpm7JWeJAe-KaAzhGEnQYf0_-6BjHDp2sXAYKnnGP6PFDg3ea0HGUWP5sKwd7MPfjYSioiWT74emx-9dIYE\" alt=\"Heap em vetor\"\/><\/figure>\n\n\n\n<p>Pela estrutura de \u00e1rvore fica f\u00e1cil identificar os n\u00f3s, seu pai e seus filhos. Por outro lado, a partir do vetor, \u00e9 necess\u00e1rio utilizarmos as f\u00f3rmulas apresentadas anteriormente.&nbsp;<\/p>\n\n\n\n<p>Por exemplo, qual seria o pai e os filhos do elemento de valor 17 (\u00edndice 3)?&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/4-7X1Cl2IDn5beOV6ZTfXHZbO9SsUTdNm7lFZcCoeo9PfwG75VLMtctQkHb4HDw46irACx6_Y_6Y-XCSQyHrlQgl1oACEsZmJbf3v_KMztVt8dhkRFLWpqTMJwrAeEp5qa_XkCWGCoHJ-Gv4MV7OnII\" alt=\"Identificando pai e filhos de um n\u00f3 em um heap\"\/><\/figure>\n\n\n\n<p>Claro que observando pela \u00e1rvore \u00e9 mais f\u00e1cil de localizar. Mas em provas de concursos, normalmente o vetor \u00e9 fornecido e deve-se indicar os elementos a partir dele.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-operacoes-com-heap-passo-a-passo\"><strong>Opera\u00e7\u00f5es com Heap: Passo a Passo<\/strong><\/h2>\n\n\n\n<p>Agora que compreendemos os conceitos b\u00e1sicos de heaps e suas propriedades, vamos explorar detalhadamente como s\u00e3o realizadas as opera\u00e7\u00f5es principais em um heap: inser\u00e7\u00e3o, remo\u00e7\u00e3o e atualiza\u00e7\u00e3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-metodos-basicos-para-reorganizacao-de-um-heap\"><strong>M\u00e9todos b\u00e1sicos para reorganiza\u00e7\u00e3o de um heap<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-propagacao-para-cima-subida-ou-sift-up\"><strong>Propaga\u00e7\u00e3o para cima (subida ou sift-up)<\/strong><\/h4>\n\n\n\n<p>Se um elemento tiver uma prioridade maior que o pai, ele \u00e9 trocado de posi\u00e7\u00e3o com o pai. Esse processo \u00e9 repetido at\u00e9 que a propriedade de heap seja restaurada.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-propagacao-para-baixo-descida-ou-sift-down\"><strong>Propaga\u00e7\u00e3o para baixo (descida ou sift-down)<\/strong><\/h4>\n\n\n\n<p>Se um elemento tiver uma prioridade menor que os filhos, ele \u00e9 trocado filho de maior prioridade. Esse processo \u00e9 repetido at\u00e9 que a propriedade de heap seja restaurada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-principais-operacoes\"><strong>Principais opera\u00e7\u00f5es<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-insercao\"><strong>Inser\u00e7\u00e3o<\/strong><\/h4>\n\n\n\n<p>A opera\u00e7\u00e3o de inser\u00e7\u00e3o em um heap envolve adicionar um novo elemento e garantir que as propriedades de heap sejam mantidas. Vamos seguir o seguinte passo a passo:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Adi\u00e7\u00e3o ao final<\/strong>: O novo elemento \u00e9 adicionado ao final do vetor que representa o heap.<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Propaga\u00e7\u00e3o para cima ou subida<\/strong>: O elemento rec\u00e9m-adicionado \u00e9 comparado com seu pai. Se o novo elemento tiver uma prioridade maior (ou menor, dependendo do tipo de heap), ele \u00e9 trocado com o pai. Esse processo \u00e9 repetido at\u00e9 que a propriedade de heap seja restaurada.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"h-exemplo-nbsp\"><strong>Exemplo:&nbsp;<\/strong><\/h5>\n\n\n\n<p><strong>Passo 1: Adicionar o novo valor ao final da heap<\/strong><\/p>\n\n\n\n<p>Comece com a heap original: [90, 36, 17, 25, 26, 7, 1, 2, 3, 19].<\/p>\n\n\n\n<p>Adicione o novo valor 40 ao final da lista, resultando em: [90, 36, 17, 25, 26, 7, 1, 2, 3, 19, 40].<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/XQ7EYHW0OOgLzGNJ0J-Nux3UR-bOrG1EqlZEKKG_lOcBoJBmLbDxR41WeEvckXmUIjsyQMihsGC-jFkYCVu9f4greObLewek4Ge9v3rQDKrIQrOC_NxeuNRMgt1R2tghMBGrLEfsZsOoJzhVuqa72oc\" alt=\"Inserindo um valor no heap\"\/><\/figure>\n\n\n\n<p><strong>Passo 2: Restaurar a propriedade de heap<\/strong><\/p>\n\n\n\n<p>O valor 40 est\u00e1 na \u00faltima posi\u00e7\u00e3o (\u00edndice 11) da heap.<\/p>\n\n\n\n<p>Compare 40 com seu pai, que est\u00e1 na posi\u00e7\u00e3o 11 \/\/ 2 = 5.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/aisxeONAeRaGkDTGAPPwj1I-aYWTjPOGxW40vLKoUrvFv6DqS_y1UqEKxpjXdGab5II-GGTrUUxRDv6pznnG9UCBHqtYpkPoLSY10JinHifzIjJwTaIbd7MWbRtfDBsIQpOCLjkUUSwTZgvfIaDL1JA\" alt=\"Opera\u00e7\u00e3o de subida\"\/><\/figure>\n\n\n\n<p>Como 40 &gt; 26, a propriedade de heap n\u00e3o \u00e9 satisfeita. Troque 40 com seu pai 26, movendo 40 para a posi\u00e7\u00e3o 5 e o 26 para a posi\u00e7\u00e3o 11.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/tvv62c3ThwK4bR64oE4ZwCj8iD6BCF0GrGBHJwv7UP0PDsEOYSohCupy4kL2rKQNR2LmE1tQ_azJNGxPS1c1_YSbj7Ewgfhyuufniah5nuXQFwDw9WPyyDfP0TNrWdzGEEENhrESB-Hs0QOUDObSJy0\" alt=\"Troca de valores\"\/><\/figure>\n\n\n\n<p><strong>Passo 3: Repetir a compara\u00e7\u00e3o e a troca at\u00e9 a raiz<\/strong><\/p>\n\n\n\n<p>Compare o novo valor 40 na posi\u00e7\u00e3o 5 com seu pai 36 na posi\u00e7\u00e3o 5 \/\/ 2 = 2.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/QQ_rrMljmubTu6zI_XuurFilGa221qULHL2D1mdQrDN69-Y_FGZyj2WoFiFJwZqaHugBbzLl8t5bR62xx0btF8geJD8G0cnjgoGpr4Msa7tklmkrrkqhWv5YHghdNWLMgv4H7N9vmD2tZtu0evikfqk\" alt=\"Compara\u00e7\u00e3o de valores na opera\u00e7\u00e3o de inser\u00e7\u00e3o\"\/><\/figure>\n\n\n\n<p>Como 40 &gt; 36, a propriedade de heap n\u00e3o \u00e9 satisfeita. Troque 40 com seu pai 36, movendo 40 para a posi\u00e7\u00e3o 2.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/zdO_LEjShysKStroKiv8CvY0XLSMgvVwzUsMHfwe6Jd_Ks-aXgHkuYCJaikTVbauDrAqz2Rb5T86JJlaj2NGvrZC3LNklKy_5ld67W0dhQwclqmVyPcJHzBoXb-SiZ-1gGmG42zWMXtIeNrahwcGMcA\" alt=\"Compara\u00e7\u00e3o de valores na opera\u00e7\u00e3o de inser\u00e7\u00e3o no heap e troca.\"\/><\/figure>\n\n\n\n<p>Compare o valor 40, na posi\u00e7\u00e3o 2, com seu pai, 90, na posi\u00e7\u00e3o 1. Como 40 &lt; 90, o processo de compara\u00e7\u00e3o e troca termina.<\/p>\n\n\n\n<p><strong>A heap final ap\u00f3s a inser\u00e7\u00e3o de 40 \u00e9:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/dAJ6yvbNOs0N4ek8Cd-raxqO9s-8YrTQvFeg04_eJysIPsbrDf8zetXIfmLWkPUzaotK86Na8sQq7nk5TX3a81hY0y-f5MykvJX8PqlyGJD4obdt1kaA3ymaryzLTaTG1bsa3NRd0SYr8xtymgkeDfs\" alt=\"Resultado final do procedimento de inser\u00e7\u00e3o\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/CMetsLWNLllJr_XF1hGpjeK4YSLedVBgT81bI49rGmt042bG2a7bHUlzqKzg9pe5tKfOyGXekFjenIrHi2R8G_M1PnLSR2K4t2QUoclsh1JB4q5woMqOOn4XmnFGji72DUIzH9FMcX0uopuFFsE1MKc\" alt=\"Vetor do resultado do procedimento de inser\u00e7\u00e3o\"\/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-remocao\"><strong>Remo\u00e7\u00e3o<\/strong><\/h4>\n\n\n\n<p>A opera\u00e7\u00e3o de remo\u00e7\u00e3o em um heap envolve retirar um elemento pelo seu \u00edndice, normalmente&nbsp; elemento de maior (ou menor) prioridade e garantir que as propriedades de heap sejam mantidas. Normalmente \u00e9 removido o elemento raiz, mas qualquer elemento pode ser removido. Vamos seguir o seguinte passo a passo:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Localiza\u00e7\u00e3o do Elemento a Ser Removido:<\/strong> Determine a posi\u00e7\u00e3o do elemento que ser\u00e1 removido no vetor que representa o heap. Isso pode ser feito usando uma busca linear ou mantendo um mapa de \u00edndices para os elementos no heap.<br \/><\/li>\n\n\n\n<li><strong>Substitui\u00e7\u00e3o com o \u00daltimo Elemento<\/strong>: Troque o elemento a ser removido com o \u00faltimo elemento do heap. Isso preserva a propriedade de \u00e1rvore completa do heap.<br \/><\/li>\n\n\n\n<li><strong>Reorganiza\u00e7\u00e3o (subida ou descida)<\/strong>: Dependendo do valor do elemento que ficou no lugar do elemento removido e de seus novos filhos (se houver), \u00e9 necess\u00e1rio reorganizar o heap para manter a propriedade de heap.\n<ol class=\"wp-block-list\">\n<li>Se o elemento for menor (em um heap m\u00e1ximo) ou maior (em um heap m\u00ednimo) do que seu pai, aplique o processo de sift-up para mov\u00ea-lo para a posi\u00e7\u00e3o correta.<\/li>\n\n\n\n<li>Se o elemento substitu\u00eddo for maior (em um heap m\u00e1ximo) ou menor (em um heap m\u00ednimo) do que pelo menos um de seus filhos, aplique o processo de sift-down para mov\u00ea-lo para a posi\u00e7\u00e3o correta.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"h-exemplo-de-remocao\"><strong>Exemplo de remo\u00e7\u00e3o:<\/strong><\/h5>\n\n\n\n<p>Vamos considerar a seguinte estrutura:<\/p>\n\n\n\n<p>\u00c1rvore heap:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/LujDcZvBAPQX5aVo6ZH0xHBtiYvDu3vOeMebJLEoG-cGsEkH5tG2FMToLD2NECS8s7b804Vw0I4dbQDJ3XC8hmxm6Iqlg0d9TKuhuRAW_5NIs9FKAjtzRaoYKm7D_tzzaU0_YsVBiri0ebsEBXAH458\" alt=\"Heap estruturado em \u00e1rvore\"\/><\/figure>\n\n\n\n<p>Vetor correspondente:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/_1dWlFx9dyrwQcrNLk7fXXN2BJMhViOMYGJic1bWLLvqhukXXyjdOqZN2Pdb-gKlF4A_xLJ14W0uJre2hBHVPeRTZfOMOQ8-PUPbbYVMQ3C7RFrUWIEryDTtDLkquKYLeb_iuI5-x_FX8R43tNf-EuI\" alt=\"Heap estruturado em vetor\"\/><\/figure>\n\n\n\n<p><strong>Passo 1: Elemento a ser removido<\/strong><\/p>\n\n\n\n<p>Iremos remover o elemento de \u00edndice 6 (valor 7).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Q3tf3MQPdlZnp9RIv4GYM0csbeaxEUBeu0iqGaHccY2OhTqzoYZ9EwH-Vjlzm6ioPnemJinpi2K0OMatW4IrcEvj2wH1ogRb0eZT8CNGfajBePs_-50XAs4t6IvaUZUShViDaK6LGK9MG0Q0hFUk33E\" alt=\"Sele\u00e7\u00e3o do elemento a ser removido no heap\"\/><\/figure>\n\n\n\n<p><strong>Passo 2: Substitui\u00e7\u00e3o com o \u00faltimo elemento<\/strong><\/p>\n\n\n\n<p>Substituir o elemento a ser removido pelo \u00faltimo elemento, que \u00e9 o 26, que est\u00e1 no \u00edndice 11.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/EI3TcLNdh0mP88yJtgPfkb2pQP0_9Tp8LfdRM2-BNOPKIcdIP1cBWm8UUwd657_oAbEli-E2seowdlC6UUaZppQf-9eL754TLhsf-0r6j3rk2AxRIkKLZeBAUxh2bhiAA1d1u7H44UCWSylCtXm_tOM\" alt=\"Substitui\u00e7\u00e3o do elemento a ser removido no heap\"\/><\/figure>\n\n\n\n<p>Ap\u00f3s a substitui\u00e7\u00e3o, temos:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/YizAnSwB6c789rx9AyDtIhT61m9sI1lmZRvi_07NKgWG2bJO8bA0lcpTS0I6Lth2Hb8OgKMRqkNFM-yLwAatntGeKPeXzFr0SPJGh0lQZzy_ZTTWotYPW4WQKCcl-zgV8rrxFfTeoM8m0diSOTzHIZk\" alt=\"Resultado ap\u00f3s substitui\u00e7\u00e3o e elimina\u00e7\u00e3o do elemento\"\/><\/figure>\n\n\n\n<p><strong>Passo 3: Reorganiza\u00e7\u00e3o<\/strong><\/p>\n\n\n\n<p>Perceba que ap\u00f3s a substitui\u00e7\u00e3o, o elemento de \u00edndice 6 (26) \u00e9 maior que seu pai (17), que est\u00e1 no \u00edndice 3. Ent\u00e3o, precisamos realizar o movimento de subida ou sift-up:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/GaW9celAD-kuiU0rM3chgsTsGgGxD6i6Aa8Z7ZJcMXJdVQVGKLj-DnN7oS-h5gq-rXO3QGlRfp7hNEYRebtPL2J4xUovNtTKyjy8PyrCP4HBLy94sr3RaSDcAx_lDgBkKHu2_caWLlZORa7rQFjJCEY\" alt=\"Procedimentos para reorganiza\u00e7\u00e3o do heap ap\u00f3s a remo\u00e7\u00e3o do elemento\"\/><\/figure>\n\n\n\n<p>Ap\u00f3s a troca, temos:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/8oVJFtnmE29-ZLE7oxTQJJ_EsHRbwyN5NCzwcIbvZb0gK2IsGvRPw8XUVuOZODMDbqP7WLh6Fjm_CLN4UJlBBQEdqRZplR4gLST7K5QUp-Pl1kZqsP1Pnz5-FPUGPJ6-OTThaioR5LffompIzcpsY4A\" width=\"602\" height=\"281\"\/><\/p>\n\n\n\n<p>Ap\u00f3s a troca dos elementos 17 e 26, as propriedades do heap foram satisfeitas, pois o elemento 26 \u00e9 menor que seu pai (90) e maior que os filhos (17 e 1).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-atualizacao\"><strong>Atualiza\u00e7\u00e3o<\/strong><\/h4>\n\n\n\n<p>A opera\u00e7\u00e3o de atualiza\u00e7\u00e3o em um heap envolve alterar a prioridade de um elemento existente e garantir que as propriedades de heap sejam mantidas. Como a opera\u00e7\u00e3o de atualiza\u00e7\u00e3o \u00e9 menos comum e depende do contexto espec\u00edfico da aplica\u00e7\u00e3o, n\u00e3o existe um m\u00e9todo padr\u00e3o. No entanto, pode-se seguir um processo geral:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Localiza\u00e7\u00e3o do elemento<\/strong>: O elemento a ser atualizado \u00e9 localizado no heap.<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Atualiza\u00e7\u00e3o da prioridade<\/strong>: A prioridade do elemento \u00e9 alterada conforme necess\u00e1rio.<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Reorganiza\u00e7\u00e3o<\/strong>: Dependendo da mudan\u00e7a na prioridade, podem ser necess\u00e1rias opera\u00e7\u00f5es adicionais, como propaga\u00e7\u00e3o para cima ou para baixo, para garantir que as propriedades de heap sejam mantidas.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"h-exemplo-nbsp-0\"><strong>Exemplo<\/strong>:&nbsp;<\/h5>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/eM_5EaiRIM3r2MpYUdRJ35u-a9ADZbJGkVbcbKwqaEzhCeWNbTb7Df-gKqFNrJXAfws3wMTmCpHCHVyFump-kdHrwjjSit97FaqCGZJ-Df7QflXVKCgl9qTuRKSmVxS45RvCbCyQ3PzyMsZSymvoIdQ\" alt=\"Heap exemplo para opera\u00e7\u00e3o de atualiza\u00e7\u00e3o\"\/><\/figure>\n\n\n\n<p>Considerando a estrutura heap acima, iremos atualizar o valor 40 (\u00edndice 2) para 5.<\/p>\n\n\n\n<p><strong>Passo 1: Localiza\u00e7\u00e3o do elemento. O valor 40 est\u00e1 no \u00edndice 2:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/r99-bSMyBLn78pdQcgRqitYyUjXC6h3Uh8E-4mbLFdmWCoZ_1Rudn-2p_GF0t07ZCvciGqp9KbIaqs68QkwpkG6rj4lpYWkBUjlAWN5N9JVmQXj-W44e7_lYV-7C8furP2cVz5Ox87g62Ju0axWmuuU\" alt=\"Localizando o elemento para atualiza\u00e7\u00e3o\"\/><\/figure>\n\n\n\n<p><strong>Passo 2: Atualiza\u00e7\u00e3o da prioridade, o valor do \u00edndice 2 passa a ser 5:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/0EFzifmEBiQIhzYasSYWJlriiYuo3kzXq0UkyMw7zgIqRoai6OQO4Z5HPca-2dNv06UIT08og0Ir9QPZUiu2PtsjzY5xhAyI5KCUlZl5_xXSeKRjaR1tz6niWs-jZu0_8g-xHkyVzrW7MWVdOV3JW-Q\" alt=\"Atualizando o valor do n\u00f3\"\/><\/figure>\n\n\n\n<p><strong>Passo 3: reorganiza\u00e7\u00e3o.&nbsp;<\/strong><\/p>\n\n\n\n<p>Perceba que a nova estrutura n\u00e3o satisfaz as propriedades do heap, pois o valor 5 \u00e9 menor que seus filhos. Neste caso, devemos trocar o valor pelo filho de maior valor, em um procedimento de descida (sift-down):<\/p>\n\n\n\n<p>Selecionamos o filho de maior valor, que \u00e9 o valor 36, \u00edndice 5:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/S3C-q20gfgM_X3v-0L1yjtxhUP85pbRBgfxQdcGz8q_XawlmiqSJ1g3TDQQLjvBsyaA3ysrytShZGFuGaOuAbx8a_GIioy1Luw28xHCYXi3lVKNcGoS2F5rlO4dWWHvlLLD4GHupLRHsEwHUs_SFHeE\" alt=\"Opera\u00e7\u00e3o de descida para reorganiza\u00e7\u00e3o do heap\"\/><\/figure>\n\n\n\n<p>Agora, realizamos o procedimento de troca:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/xXgYY4kHs5s8xybaCGon7ec5NKNzd6gQYwTXXCecneGrhG7NxomQZt2qs9AN8c0bB4ILQhkUxIHVhr8xAIFVsY0W-jeJxormxicf0Dqn6ccAqZWKVzsTT8SPn_kE4HkmZjRLKiZntGl9_dqf-ZxjlyY\" alt=\"Opera\u00e7\u00e3o de descida para reorganiza\u00e7\u00e3o do heap\"\/><\/figure>\n\n\n\n<p>A nova estrutura ainda n\u00e3o satisfaz as propriedades do heap, pois o valor 5 (\u00edndice 5) \u00e9 menor que seus filhos,19 e 26, que est\u00e3o nos \u00edndices 10 e 11, respectivamente.<\/p>\n\n\n\n<p>Selecionamos o filho de maior valor, que \u00e9 26, \u00edndice 11:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/6n5b52dJWKsZKbIPqHm3q465w64zroOetKcVj_1h-h1JrKj5yfSE9ms1inx9wnvlHyR8JkKa9aJtGKymMaxqBsRb6jCEUVpEB3eKahxKnHlyzH4fTOszCdfOEQrr5xgbjfKoFEi9Dj5hh0p4qXPEhuk\" alt=\"Opera\u00e7\u00e3o de descida para reorganiza\u00e7\u00e3o do heap\"\/><\/figure>\n\n\n\n<p>Novamente, realizamos o procedimento de troca:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Y0qSwDAUSiU_6QmF7erjM5Ly-wf0dXl5b1j9_tyHMqAWgVR4tNr1XpTgEH59PI2xIrc2Q_5iaqmKawYeiXYW8Q8HtrsWTuHrPLFxfDDk-8mqeidAzKbXndthjjoYMiTr-Tpbnzm9mKlO07YjtDunRjQ\" alt=\"Resultado final da opera\u00e7\u00e3o de atualiza\u00e7\u00e3o.\"\/><\/figure>\n\n\n\n<p>Dessa vez as propriedades do heap foram satisfeitas. Portanto, a opera\u00e7\u00e3o de atualiza\u00e7\u00e3o foi finalizada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-aplicacoes-de-heaps\"><strong>Aplica\u00e7\u00f5es de Heaps<\/strong><\/h2>\n\n\n\n<p>Os heaps s\u00e3o amplamente utilizados em algoritmos e aplica\u00e7\u00f5es que requerem acesso r\u00e1pido a elementos com prioridade m\u00e1xima ou m\u00ednima. Algumas das aplica\u00e7\u00f5es comuns incluem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Algoritmos de Ordena\u00e7\u00e3o<\/strong>: Heapsort \u00e9 um algoritmo de ordena\u00e7\u00e3o eficiente baseado em heap.<\/li>\n\n\n\n<li><strong>Algoritmos de Grafos<\/strong>: Algoritmos como Dijkstra e Prim usam filas de prioridade para sele\u00e7\u00e3o eficiente de arestas ou v\u00e9rtices.<\/li>\n\n\n\n<li><strong>Gerenciamento de Mem\u00f3ria<\/strong>: Heaps s\u00e3o usados em aloca\u00e7\u00e3o de mem\u00f3ria din\u00e2mica, como no algoritmo de aloca\u00e7\u00e3o de mem\u00f3ria de primeira adapta\u00e7\u00e3o.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusao\"><strong>Conclus\u00e3o<\/strong><\/h2>\n\n\n\n<p>As filas de prioridade s\u00e3o estruturas de dados poderosas e vers\u00e1teis, fundamentais em muitos algoritmos e sistemas. A implementa\u00e7\u00e3o usando heaps oferece uma solu\u00e7\u00e3o eficiente e elegante para lidar com tarefas que requerem acesso r\u00e1pido a elementos com prioridade m\u00e1xima ou m\u00ednima.<\/p>\n\n\n\n<p>Esperamos que este artigo tenha fornecido uma compreens\u00e3o clara das filas de prioridade e da import\u00e2ncia dos heaps em sua implementa\u00e7\u00e3o. Bons estudos!<\/p>\n\n\n\n<p class=\"has-text-align-center\" id=\"h-quer-saber-tudo-sobre-concursos-previstos\"><strong>Quer saber quais ser\u00e3o os pr\u00f3ximos concursos?<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Confira nossos artigos!<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-pale-cyan-blue-background-color has-text-color has-background\"><a href=\"https:\/\/www.estrategiaconcursos.com.br\/blog\/concursos-abertos\/\" target=\"_blank\" rel=\"noreferrer noopener\">Concursos abertos<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-pale-cyan-blue-background-color has-text-color has-background\"><a href=\"https:\/\/www.estrategiaconcursos.com.br\/blog\/concursos-2024\/\" target=\"_blank\" rel=\"noreferrer noopener\">Concursos 2024<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As estruturas de dados s\u00e3o fundamentais na ci\u00eancia da computa\u00e7\u00e3o, permitindo a organiza\u00e7\u00e3o eficiente e manipula\u00e7\u00e3o de informa\u00e7\u00f5es. Entre essas estruturas, as filas de prioridade desempenham um papel crucial em uma ampla gama de algoritmos e aplica\u00e7\u00f5es. Neste artigo, exploraremos as filas de prioridade, assunto este que est\u00e1 no edital do CNU e j\u00e1 foi [&hellip;]<\/p>\n","protected":false},"author":2565,"featured_media":1341825,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"post_tipo":"article","footnotes":""},"categories":[1,220184],"tags":[221568,221599,25],"tax_estado":[219963],"class_list":["post-1377416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cursos-e-concursos","category-engenharias-e-ti","tag-cnu","tag-concurso-nacional-unificado","tag-tecnologia-da-informacao","tax_estado-concursos-federais"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Filas de prioridades (heap) para o CNU (TI)<\/title>\n<meta name=\"description\" content=\"Neste artigo, exploraremos as filas de prioridade, com foco especial na implementa\u00e7\u00e3o usando uma estrutura de dados conhecida como heap.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Filas de prioridades (heap) para o CNU (TI)\" \/>\n<meta property=\"og:description\" content=\"Neste artigo, exploraremos as filas de prioridade, com foco especial na implementa\u00e7\u00e3o usando uma estrutura de dados conhecida como heap.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/\" \/>\n<meta property=\"og:site_name\" content=\"Estrat\u00e9gia Concursos\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-24T14:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"432\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Antoniel da Silva Rego\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EstratConcursos\" \/>\n<meta name=\"twitter:site\" content=\"@EstratConcursos\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antoniel da Silva Rego\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/\"},\"author\":{\"name\":\"Antoniel da Silva Rego\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/person\/65e75c615593894f0136e777b57e5d46\"},\"headline\":\"Filas de prioridades (heap) para o CNU (TI)\",\"datePublished\":\"2024-04-24T14:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/\"},\"wordCount\":1863,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg\",\"keywords\":[\"cnu\",\"Concurso Nacional Unificado\",\"Tecnologia da Informa\u00e7\u00e3o\"],\"articleSection\":[\"Concursos P\u00fablicos\",\"Engenharias e TI\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#respond\"]}],\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/\",\"url\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/\",\"name\":\"Filas de prioridades (heap) para o CNU (TI)\",\"isPartOf\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg\",\"datePublished\":\"2024-04-24T14:00:00+00:00\",\"description\":\"Neste artigo, exploraremos as filas de prioridade, com foco especial na implementa\u00e7\u00e3o usando uma estrutura de dados conhecida como heap.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#primaryimage\",\"url\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg\",\"contentUrl\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg\",\"width\":768,\"height\":432,\"caption\":\"cnu tempor\u00e1rias\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Filas de prioridades (heap) para o CNU (TI)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#website\",\"url\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/\",\"name\":\"Estrat\u00e9gia Concursos\",\"description\":\"O blog da Estrat\u00e9gia Concursos traz not\u00edcias sobre concursos e artigos de professores oferecendo cursos para concursos (pdf + videaulas) no site.\",\"publisher\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization\",\"name\":\"Estrat\u00e9gia Concursos\",\"url\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2025\/06\/03203428\/logo_concursos-1.jpg\",\"contentUrl\":\"https:\/\/dhg1h5j42swfq.cloudfront.net\/2025\/06\/03203428\/logo_concursos-1.jpg\",\"width\":230,\"height\":60,\"caption\":\"Estrat\u00e9gia Concursos\"},\"image\":{\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/EstratConcursos\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/person\/65e75c615593894f0136e777b57e5d46\",\"name\":\"Antoniel da Silva Rego\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/b8f680af1fe7f097d3f42a127f2b204823c881cf0f4a904ff915b5991017d762?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b8f680af1fe7f097d3f42a127f2b204823c881cf0f4a904ff915b5991017d762?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b8f680af1fe7f097d3f42a127f2b204823c881cf0f4a904ff915b5991017d762?s=96&d=mm&r=g\",\"caption\":\"Antoniel da Silva Rego\"},\"url\":\"https:\/\/www.estrategiaconcursos.com.br\/blog\/author\/tonnyelgmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Filas de prioridades (heap) para o CNU (TI)","description":"Neste artigo, exploraremos as filas de prioridade, com foco especial na implementa\u00e7\u00e3o usando uma estrutura de dados conhecida como heap.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/","og_locale":"pt_BR","og_type":"article","og_title":"Filas de prioridades (heap) para o CNU (TI)","og_description":"Neste artigo, exploraremos as filas de prioridade, com foco especial na implementa\u00e7\u00e3o usando uma estrutura de dados conhecida como heap.","og_url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/","og_site_name":"Estrat\u00e9gia Concursos","article_published_time":"2024-04-24T14:00:00+00:00","og_image":[{"width":768,"height":432,"url":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg","type":"image\/jpeg"}],"author":"Antoniel da Silva Rego","twitter_card":"summary_large_image","twitter_creator":"@EstratConcursos","twitter_site":"@EstratConcursos","twitter_misc":{"Escrito por":"Antoniel da Silva Rego","Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#article","isPartOf":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/"},"author":{"name":"Antoniel da Silva Rego","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/person\/65e75c615593894f0136e777b57e5d46"},"headline":"Filas de prioridades (heap) para o CNU (TI)","datePublished":"2024-04-24T14:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/"},"wordCount":1863,"commentCount":0,"publisher":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#primaryimage"},"thumbnailUrl":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg","keywords":["cnu","Concurso Nacional Unificado","Tecnologia da Informa\u00e7\u00e3o"],"articleSection":["Concursos P\u00fablicos","Engenharias e TI"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#respond"]}],"copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/","url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/","name":"Filas de prioridades (heap) para o CNU (TI)","isPartOf":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#primaryimage"},"image":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#primaryimage"},"thumbnailUrl":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg","datePublished":"2024-04-24T14:00:00+00:00","description":"Neste artigo, exploraremos as filas de prioridade, com foco especial na implementa\u00e7\u00e3o usando uma estrutura de dados conhecida como heap.","breadcrumb":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#primaryimage","url":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg","contentUrl":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2024\/01\/26181150\/cnu-1.jpg","width":768,"height":432,"caption":"cnu tempor\u00e1rias"},{"@type":"BreadcrumbList","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/filas-prioridades-heap-cnu-ti\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.estrategiaconcursos.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Filas de prioridades (heap) para o CNU (TI)"}]},{"@type":"WebSite","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#website","url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/","name":"Estrat\u00e9gia Concursos","description":"O blog da Estrat\u00e9gia Concursos traz not\u00edcias sobre concursos e artigos de professores oferecendo cursos para concursos (pdf + videaulas) no site.","publisher":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.estrategiaconcursos.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#organization","name":"Estrat\u00e9gia Concursos","url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2025\/06\/03203428\/logo_concursos-1.jpg","contentUrl":"https:\/\/dhg1h5j42swfq.cloudfront.net\/2025\/06\/03203428\/logo_concursos-1.jpg","width":230,"height":60,"caption":"Estrat\u00e9gia Concursos"},"image":{"@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/EstratConcursos"]},{"@type":"Person","@id":"https:\/\/www.estrategiaconcursos.com.br\/blog\/#\/schema\/person\/65e75c615593894f0136e777b57e5d46","name":"Antoniel da Silva Rego","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/b8f680af1fe7f097d3f42a127f2b204823c881cf0f4a904ff915b5991017d762?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b8f680af1fe7f097d3f42a127f2b204823c881cf0f4a904ff915b5991017d762?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8f680af1fe7f097d3f42a127f2b204823c881cf0f4a904ff915b5991017d762?s=96&d=mm&r=g","caption":"Antoniel da Silva Rego"},"url":"https:\/\/www.estrategiaconcursos.com.br\/blog\/author\/tonnyelgmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/posts\/1377416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/users\/2565"}],"replies":[{"embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1377416"}],"version-history":[{"count":5,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/posts\/1377416\/revisions"}],"predecessor-version":[{"id":1377790,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/posts\/1377416\/revisions\/1377790"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/media\/1341825"}],"wp:attachment":[{"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1377416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1377416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1377416"},{"taxonomy":"tax_estado","embeddable":true,"href":"https:\/\/www.estrategiaconcursos.com.br\/blog\/wp-json\/wp\/v2\/tax_estado?post=1377416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}