Questões de Concurso
Comentadas sobre algoritmos de ordenação em algoritmos e estrutura de dados
Foram encontradas 185 questões
Para responder a questão, considere os dados a seguir:
No portal do TCE-RS há os seguintes dados com relação ao indicador “Despesas com Educação” no município de Porto Alegre:
PORTO ALEGRE
Despesa: R$ 635.024.252,88
Receita: R$ 2.325.564.053,44
Percentual:
2012 27,31%
2011 26,90%
2010 27,10%
2009 27,72%
2008 25,33%
O indicador “Despesas com Educação” também foi medido em diversos municípios do estado do Rio Grande do Sul e as seguintes atividades deverão ser realizadas com base nestes dados:
I. Unir aos dados ordenados dos anos de 2008 a 2012, os dados já ordenados dos anos de 2000 a 2011, criando um único novo vetor ordenado.
II. Construir uma estrutura de dados que permita inserir o indicador de 2012 relativo às “Despesas com Educação” e os nomes de todos os municípios do Estado. A estrutura deve permitir realizar uma consulta eficiente pelo nome do município para obter o valor do indicador e também mostrar os nomes dos municípios em ordem alfabética junto com seu indicador.
Para as tarefas I e II, optou-se, de forma correta e mais adequada, por utilizar
I O algoritmo quicksort é muito eficiente quando temos uma quantidade pequena de elementos a ordenar. II O algoritmo shell utiliza intensamente a inserção direta. III No algoritmo bubble sort o número de variáveis envolvidas é pequeno.
As afirmativas I, II e III são, respectivamente:
Na tabela a seguir, considerando os métodos de ordenação, que visam a colocar uma lista em ordem para facilitar a busca de informações nela contidas, associe os métodos à sua respectiva descrição.
Método de Ordenação
(1) Bubble Sort
(2) Insert Sort
(3) Select Sort
(4) Shellsort
(5) Mergesort
(6) Quicksort
(7) Heapsort
Descrição
( ) Neste método, a lista é subdividida em h-listas, as quais são ordenadas com um método de ordenação qualquer. Esse procedimento é repetido para valores decrescentes de h, sendo que o último valor de h tem que ser 1.
( ) Neste método, são usados, inicialmente, os elementos da lista que são inseridos em um heap binário crescente. Em seguida, são feitas sucessivas remoções do menor elemento do heap, colocando os elementos removidos do heap de volta na lista.
( ) Neste método, a lista é dividida em duas metades. Essas metades são ordenadas recursivamente e depois são intercaladas. Para tanto, faz-se uso das variáveis i e j para percorrer a metade esquerda e a metade direita, respectivamente. Em cada iteração, compara-se o elemento na posição i com o elemento na posição j. O menor deles é copiado para um vetor auxiliar. Esse procedimento é repetido até que uma das duas metades tenha sido totalmente copiada para o vetor auxiliar.
( ) Neste método, os elementos da lista são movidos para as posições adequadas de forma contínua. Se um elemento está inicialmente numa posição i e, para que a lista fique ordenada, ele deve ocupar a posição j, então ele terá que passar por todas as posições entre i e j. Em cada iteração do método, percorre-se a lista a partir de seu início, comparando cada elemento com seu sucessor, trocando-os de posição se houver necessidade.
( ) Neste método, a lista é dividida em parte esquerda e parte direita, sendo que os elementos da parte esquerda são todos menores do que os elementos da parte direita. Em seguida, as duas partes são ordenadas recursivamente.
( ) Neste método, considera-se que a lista está dividida em parte esquerda, já ordenada, e parte direita, em possível desordem. Além disso, os elementos da parte esquerda são todos menores ou iguais aos elementos da parte direita. Cada iteração consiste em escolher o menor elemento da parte direita (pivô) e trocá-lo com o primeiro elemento da parte direita. Com isso, a parte esquerda aumenta, pois passa a incluir o pivô, e a parte direita diminui.
( ) Neste método, considera-se que a lista está dividida em parte esquerda, já ordenada, e parte direita, em possível desordem. Inicialmente, a parte esquerda contém apenas o primeiro elemento da lista. Cada iteração consiste em colocar o primeiro elemento da parte direita (pivô) na posição adequada da parte esquerda, de modo que a parte esquerda continue ordenada.
Tabela: métodos de ordenação
Fonte: Próprio autor
A sequência correta desta associação é
Julgue o item subsequente, relativo a estrutura de dados.
Situação hipotética: Para ordenar os números do vetor (30, 50, 10, 20, 40), foram realizados os passos i a vi, apresentados a seguir, com os respectivos resultados a cada passagem.
i 30 > 50?
30,50,10,20,40
ii 50 > 10?
30,10,50,20,40
iii 50 > 20?
30,10,20,50,40
iv 50 > 40?
30,10,20,40,50
v 30 > 10?
10,30,20,40,50
vi 30 > 20?
10,20,30,40,50
Assertiva: Nessa situação, os passos realizados constituem um
algoritmo do tipo bubble sort, ou bolha.
Os métodos de ordenação são empregados para rearranjar um conjunto de objetos em uma ordem específica. Considere as seguintes proposições sobre esses métodos:
I. Um método de ordenação é dito estável se a ordem relativa dos itens com chaves iguais mantém-se inalterada pelo processo de ordenação.
II. A estabilidade de um método de ordenação é importante quando o conjunto de dados já está parcialmente ordenado.
III. Na ordenação interna, o número de registros a serem ordenados é pequeno o bastante para que todo o processo se desenvolva na memória interna (principal).
IV. Na ordenação externa, o número de registros a ser ordenado é maior do que o número que cabe na memória interna.
Assinale a alternativa CORRETA:
Analise as proposições abaixo sobre algoritmos e estrutura de dados:
I. Os métodos de ordenação por inserção e bolha possuem complexidade O(n2 ) em relação ao número de comparações.
II. Embora O(n2 ), o método de ordenação por inserção possui complexidade Ω(n) em relação ao número de comparações.
III. O método de ordenação por inserção, assim como o Quicksort, é estável.
IV. O método de ordenação Quicksort tem complexidade O(n2 ) em seu pior caso.
Assinale a alternativa CORRETA:
Julgue o item seguinte, quanto aos conceitos da programação estruturada e da programação orientada a objetos e aos métodos de ordenação, pesquisa e hashing.
O método de ordenação conhecido como quick sort utiliza o
maior elemento, o qual é sempre colocado ao final do vetor,
para garantir que a ordenação seja realizada em ordem
decrescente.