- ID
- 1891
- Banca
- NCE-UFRJ
- Órgão
- BNDES
- Ano
- 2005
- Provas
- Disciplina
- Algoritmos e Estrutura de Dados
- Assuntos
Considere uma árvore binária de busca com n elementos e altura mínima. O tempo de acesso a qualquer elemento desta árvore é da ordem de:
Considere uma árvore binária de busca com n elementos e altura mínima. O tempo de acesso a qualquer elemento desta árvore é da ordem de:
Sobre o algoritmo de ordenação heapsort, assinale a afirmação correta.
Uma fábrica de software foi contratada para desenvolver um produto de análise de riscos. Em determinada funcionalidade desse software, é necessário realizar a ordenação de um conjunto formado por muitos números inteiros. Que algoritmo de ordenação oferece melhor complexidade de tempo (Big O notation) no pior caso?
Analise as seguintes afi rmações relacionadas a conceitos básicos de programação e de algoritmos:
I. Considerando entradas totalmente desordenadas, em um algoritmo de "Ordenação por Inserção", o tempo consumido no processamento para ordenar uma entrada de mil números é o mesmo que o tempo gasto para ordenar uma entrada de três números, quando executados em uma mesma máquina com arquitetura RISC.
II. Considerando o tempo de execução do pior caso de um algoritmo, na pesquisa de um banco de dados em busca de um determinado fragmento de informação, o pior caso do algoritmo de pesquisa ocorrerá, na maioria das vezes, quando a informação não estiver presente no banco de dados.
III. Um algoritmo é dito recursivo quando, para resolver um problema, ele chama internamente vários outros algoritmos duas ou mais vezes para lidar com subproblemas intimamente relacionados.
IV. Para qualquer número inteiro N e qualquer número inteiro positivo K, o valor N mod K é o resto do quociente N/K.
Indique a opção que contenha todas as afi rmações verdadeiras.
São algoritmos de classificação por trocas apenas os métodos
Assinale a alternativa incorreta:
São, respectivamente, um método de busca e um método de ordenação:
O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.
A ordenação de um vetor contendo n elementos, utilizando-se algoritmo de bolha, realiza, no pior caso, mais que n/2 comparações.
As estratégias de divisão e de conquista são utilizadas pelos algoritmos de ordenação
O quicksort é um algoritmo que funciona usando o paradigma de dividir e conquistar, usando uma rotina de particionamento que divide o vetor de estruturas em dois pedaços em torno de um pivô. O pedaço da esquerda só contém elementos com chaves menores ou iguais que o elemento corrente e o pedaço da direita, só elementos com chaves maiores que o elemento corrente. O algoritmo procede, então, para o subproblema de ordenar cada um dos pedaços e seu desempenho total é um dos mais eficientes para ordenação de estruturas de dados. Qual das seguintes descrições representa uma correta característica do algoritmo quicksort?
Em relação à classificação de dados e tipos abstratos de dados
(TADs), julgue os itens subsequentes.
A classificação interna por inserção é um método que realiza a ordenação de um vetor por meio da inserção de cada elemento em sua posição correta dentro de um subvetor classificado.
A técnica que é utilizada para obtenção de um novo arquivo único, a partir de dois ou mais arquivos que contenham registros de mesmo tipo, estando esses arquivos classificados segundo um mesmo critério pela mesma chave, é conhecida como:
A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.
A eficácia do método de ordenação rápida (quicksort) depende da escolha do pivô mais adequado ao conjunto de dados que se deseja ordenar. A situação ótima ocorre quando o pivô escolhido é igual ao valor máximo ou ao valor mínimo do conjunto de dados.
A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.
A estrutura de dados heap, que é eficiente para a implementação do método de ordenação heapsort, consiste em uma árvore binária completa e sua implementação mais simples ocorre na forma de array.
A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.
A estabilidade de um método de ordenação é importante quando o conjunto de dados já está parcialmente ordenado.
A respeito dos princípios de programação, julgue os seguintes itens.
Os métodos de ordenação podem ser classificados como estáveis ou não estáveis. O método é estável se preserva a ordem relativa de dois valores idênticos. Alguns métodos eficientes como shellsort ou quicksort não são estáveis, enquanto alguns métodos pouco eficientes, como o método da bolha, são estáveis.
NÃO se trata de um método de ordenação (algoritmo):
São métodos ou algoritmos conhecidos de ordenação de dados por troca:
tempo de execução do pior caso do algoritmo de ordenação Quicksort é:
Observe o trecho de pseudocódigo abaixo para ordenar 9 números, em ordem crescente.
algoritmo SORT;
tipo
VETOR = array[1..9] numérico;
variáveis
T : VETOR;
K, X, B : numérico;
Início {corpo principal do programa}
{instruções que realizam a leitura}
{dos 9 números desordenados}
{classificação dos 9 números}
{em ordem crescente}
BLOCO-INSTRUÇÕES
{impressão dos 9 números}
{em ordem crescente}
fim-do-algoritmo.
As instruções que devem substituir a referência BLOCO-INSTRUÇÕES estão indicadas na seguinte opção:
O método de ordenação QuickSort (ordenação rápida) é um método sofisticado de ordenação de vetores que
O algoritmo Bubble Sort é popular, mesmo que ineficiente. Usando-se esse algoritmo para ordenar uma tabela, alocada sequencialmente, em ordem crescente contendo os números [5, 4, 1, 3, 2] serão feitas:
Considerando-se a análise assintótica (Notação Big O), qual é a complexidade do caso médio do algoritmo de ordenação chamado de Ordenação por Inserção?
Em uma árvore ordenada, um elemento pode ser eliminado colocando-se em seu lugar o
I. maior elemento da sub-árvore à esquerda do elemento a eliminar.
II. menor elemento da sub-árvore à direita do elemento a eliminar.
III. elemento vazio, da sub-árvore à esquerda do elemento a eliminar.
IV. elemento vazio, da sub-árvore à direita do elemento a eliminar.
É correto o que se afirma APENAS em
São algoritmos de ordenação, cuja complexidade é O(n log n), EXCETO:
Julgue os itens seguintes, acerca de métodos de ordenação e busca.
O heapsort é um algoritmo de ordenação em que a quantidade de elementos armazenada fora do arranjo de entrada é constante durante toda a sua execução.
São exemplos de algoritmos de ordenação, exceto:
Analise as seguintes afirmativas sobre métodos de ordenação.
I. Quicksort divide um conjunto de itens em conjuntos menores, que são ordenados de forma independe, e depois os resultados são combinados para produzir a solução de ordenação do conjunto maior.
II. Seleção é um método que consiste em selecionar o menor item de um vetor e substituí-lo pelo item que estiver na primeira posição. Essas duas operações são repetidas com os itens restantes até o último elemento.
III. Shellsort é uma extensão do algoritmo de ordenação por Inserção, contornando o problema que ocorre quando o menor item de um vetor está na posição mais à direita.
Assinale a alternativa CORRETA:
Com relação a classificação de dados, julgue os itens que se seguem.
O método de classificação Shellsort iguala-se ao método Quicksort em termos de complexidade temporal, porém é mais eficiente para quantidades pequenas a moderadas de dados.
Ao se tratar de classificação parcial de um conjunto de dados, o método mais indicado, de forma geral, é o Quicksort Parcial.
O método de classificação Quicksort é estável e executado em tempo linearmente dependente da quantidade de dados que estão sendo classificados.
Caso os dados estejam fora de ordem, o uso do método de classificação por inserção é pouco eficiente, mas quanto mais ordenados os dados estiverem inicialmente, mais eficiente em termos de tempo de execução ele se torna.
O número médio de comparações do método de ordenação Quicksort é:
Assinale a alternativa que corresponde a um algoritmo de ordenação de vetores que adota a estratégia de divisao e conquista.
Acerca de métodos de ordenação dos dados, julgue os itens subsequentes.
O método de ordenamento denominado inserção funciona por meio do seguinte processo: encontra-se o menor elemento, que é posicionado na primeira posição, depois posiciona-se o segundo menor elemento na segunda posição, e assim sucessivamente.
Acerca de métodos de ordenação dos dados, julgue os itens subsequentes.
Em uma pesquisa de um registro em um arquivo sequencial, todos os registros são percorridos até que o registro desejado seja encontrado.
Acerca de métodos de ordenação dos dados, julgue os itens subsequentes.
No método de ordenamento denominado shellsort, as comparações e as trocas são feitas conforme determinada distância entre dois elementos, de modo que, uma distância igual a 6 seria a comparação entre o primeiro elemento e o sétimo, ou entre o segundo elemento e o oitavo, e assim sucessivamente, repetindo-se esse processo até que as últimas comparações e trocas tenham sido efetuadas e a distância tenha diminuído até chegar a 1.
Analise as afirmativas:
I. Considere o método de ordenação que implementa o seguinte processo: uma coleção desordenada de n elementos é dividida em duas metades e cada metade é utilizada como argumento para a reaplicação recursiva da subrotina. Os resultados das duas reaplicações são, então, combinados pela intercalação dos elementos de ambas, resultando em uma coleção ordenada. A complexidade do caso médio desse algoritmo é expressa por O(n log2 n).
II. Existem aplicações para listas lineares nas quais inserções, retiradas e acessos a itens ocorrem sempre em um dos extremos da lista. Nestes casos a estrutura adequada para resolvê-los é a pilha ou stack.
III. No método Quicksort, o pivô é responsável pelo número de partições em que o vetor é dividido. Como o pivô não pode ser um elemento que esteja repetido no vetor, o Quicksort não funciona quando há elementos repetidos.
Está correto o que se afirma em
Considere as afirmativas sobre
i) Métodos de pesquisa sequencial e de pesquisa binária
ii) Métodos de ordenação
Sabendo que N se refere ao número de elementos do conjunto, a alternativa em que i) e ii) estão ambas ERRADAS, é
Acerca de definições de classificação de dados e tipos abstratos de dados, julgue os itens que se seguem.
O algoritmo de ordenação heapsort refere-se ao processo de divisão, ao meio, do grupo de elementos, repetindo-se a divisão para cada um dos subgrupos, até que esses tenham apenas um elemento. Nesse ponto, faz-se o reagrupamento dos subgrupos, comparando os elementos e trocando-os, se necessário, para que fiquem ordenados. Repete-se esse procedimento até restar um só grupo de elementos.
Acerca de definições de classificação de dados e tipos abstratos de dados, julgue os itens que se seguem.
No algoritmo de ordenação denominado quicksort, escolhe-se um ponto de referência, denominado pivô, e separam-se os elementos em dois grupos: à esquerda, ficam os elementos menores que o pivô, e à direita ficam os maiores. Repete-se esse processo para os grupos de elementos formados (esquerda e direita) até que todos os elementos estejam ordenados.
Das opções seguintes, assinale aquela que contém apenas algoritmos de ordenação de dados.
Acerca de programação estruturada e algoritmos de ordenação e pesquisa, julgue os próximos itens.
Entre os algoritmos de ordenação e pesquisa bubble sort, quicksort e heapsort, o quicksort é considerado o mais eficiente, pois se caracteriza como um algoritmo de dividir- para- conquistar, utilizando operações de particionamento.
O processo de ordenação de vetores que busca o menor elemento do vetor e o insere na primeira posição do vetor e que, posteriormente, busca o segundo menor valor do vetor e o coloca na segunda posição do vetor, e assim sucessivamente até que todo o vetor esteja ordenado, denomina-se
Há situações em que é necessário ordenar os dados. Para esse procedimento existem algoritmos de ordenação. Um deles consiste na ordenação onde são efetuadas comparações entre os dados armazenados em um vetor de tamanho n, e cada elemento de posição i é comparado com o elemento de posição i+1, sendo que quando a ordenação procurada é encontrada, uma troca de posições entre os elementos é feita. Qual o nome deste tipo de algoritmo de ordenação?
Cláudia trabalha como Analista Legislativo na Assembleia Legislativa do Estado de Pernambuco e recebeu de seu chefe um arquivo com a lista de todas as Leis Orçamentárias válidas entre 1900 até o presente ano, sem nenhuma ordenação. Para melhor localizar as Leis com base no ano a qual pertencem, Cláudia implementou uma solução que, buscando agilizar este processo,
A ordenação de registros de arquivos é um recurso utilizado para agilizar o acesso aos dados. Arquivos de registros fisicamente ordenados com mais de 100.000 registros
Qual das alternativas abaixo indica um algoritmo de ordenação?
Os termos Quick, Merge, Heap e Buble representam, respectivamente:
Considere utilizar o algoritmo Bubble Sort para ordenar, em ordem crescente, a sequência de números
17, 43, 37, 31, 8, 77, 52, 25.
Se a sequência original for a iteração zero, qual será a sequência de números da segunda iteração?
Acerca de classificação de dados, julgue os itens subsecutivos.
Independentemente do vetor de entrada, o algoritmo Quick Sort divide o vetor ao meio, ordenando cada metade recursivamente e intercalando as duas metades ordenadas.
Acerca da pesquisa e da classificação de dados, julgue os próximos itens.
O método da bolha é um exemplo de classificação por seleção efetivada pela seleção contínua do menor valor de uma chave contido em determinado vetor.
Acerca da pesquisa e da classificação de dados, julgue os próximos itens.
Durante o processo de classificação, é possível gerar-se um vetor indireto de ordenação (VIO), cuja principal vantagem relaciona-se à possibilidade de realização da movimentação das entradas da tabela, a partir de suas posições originais, para a ordenação dos dados.
Os métodos de ordenação correspondem ao processo de rearranjar um conjunto de objetos em ordem ascendente ou descendente. O objetivo da ordenação é facilitar a recuperação posterior dos itens do conjunto ordenado. Um algoritmo de ordenação que pode ser usado em uma ampla variedade de situações é denominado de
No que diz respeito aos conceitos e fundamentos de lógica de programação, julgue o item seguinte.
Os algoritmos de ordenação por seleção (SS) e bubble sort (BS) foram usados para ordenar a sequência 31, 11, 23, 17, 13 de forma crescente.
Quantas trocas e comparações foram realizadas, respectivamente, por cada um?
Observe abaixo uma implementação em C# de um algoritmo de ordenação
public class InsertionSort
{
public int[] iSort(int[] input)
{
for (int i = 1; i < input.Length; i++)
{
int key = input[i];
int j = i - 1;
while (j >= 0 && input[j] > key)
{
input[j + 1] = input[j];
j--;
}
input[j + 1] = key;
}
return input;
}
}
A implementação realiza um procedimento de ordenação sobre um vetor de números inteiros. Ao final da ordenação, o vetor ordenado é apresentado no monitor.
Assinale a alternativa que apresenta o método de ordenação utilizado.
Julgue o item a seguir, com relação a estruturas de dados.
O método quicksort é semelhante ao bubble sort, pois opera comparando cada elemento de um vetor com seu sucessor e, caso este esteja fora de ordem, o quicksort auxilia a troca da posição. Dessa forma, em ambos os métodos, é grande o número de comparações e trocas para execução de vetores extensos.
Observe o algoritmo a seguir.
mudou : = V; n' : = n ; guarda : = n
enquanto mudou faça
j : = 1; mudou : = F
 enquanto j < n ' faça
 se A[ j ].chave > A[ j + 1].chave então
 trocar (A [ j ] , A [ j + 1]
 mudou : = V
 guarda : = j
  j : = j + 1
n' : = guarda
O algoritmo acima descreve que método de ordenação?
Considere o seguinte algoritmo de ordenação de elementos em uma lista:
1. Escolha um elemento que será chamado o pivot da lista.
2. Reordene a lista de tal forma que os elementos menores que o pivot venham antes dele e os elementos maiores ou iguais ao pivot venham depois dele. Essa operação é chamada de partição, e cria duas sublistas:
a. a de menores que o pivot e
b. a de maiores ou iguais ao pivot.
3. Aplique recursivamente os passos 1 e 2 às sublistas de menores e maiores que o pivot.
O algoritmo acima corresponde ao
Com referência à organização de arquivos, julgue o próximo item.
Em cada passo do método de ordenação conhecido como quick sort, cada elemento do vetor é comparado com o seu sucessor. Nessa comparação, os dois elementos comparados serão trocados de posição caso estejam fora de ordem
O seguinte trecho de código em Java foi copiado de uma classe que implementa um método de ordenação de vetores.
1. for ( int i=0; i < n; i ++) {
2. for (int j=1; j < (n-i) ; j ++) {
3. if (intArray[ j-1] > intArray[ j ] ) {
4. temp = intArray[ j-1] ;
5. intArray[ j-1] = intArray[ j ] ;
6. intArray[ j ] = temp ;
7. }
8. }
9. }
Para expressar propriedades desse código, na linguagem da lógica proposicional, considere as proposições lógicas p, q e r e as seguintes interpretações:
• p é verdadeiro se e somente se i = 0
• q é verdadeiro se e somente se j ≠ (n-i)
• r é verdadeiro se e somente se intArray[j-1] > intArray[j]
Nesse contexto, os comandos de atribuição presentes neste trecho de código (linhas 4, 5 e 6) serão executados para:
Sobre a análise de algoritmos, é CORRETO afirmar que
O algoritmo de ordenação de pior complexidade temporal no caso médio, dentre os que se seguem, é
Um bom exemplo de resolução de problemas em computadores é a utilização de algum algoritmo de ordenação. Ordenar corresponde ao processo de rearranjar um conjunto de objetos em ordem crescente ou decrescente. Um dos principais objetivos da ordenação é facilitar a recuperação posterior dos itens ordenados. Na escolha da utilização de determinado algoritmo, uma característica a ser considerada é o tempo de execução do pior caso. Assinale, a seguir, o algoritmo de ordenação com tempo de execução do pior caso em: θ(n²).
Que nome recebem os métodos ou algoritmos que efetuam ordenação de dados por troca?
Em relação aos algoritmos de ordenação, é correto afirmar que:
A respeito de análise de algoritmos, programação estruturada e orientada a objetos e estruturas de dados, julgue o item a seguir.
Em seu pior caso, o tempo de ordenação do algoritmo Quicksort sobre um arranjo de n números é igual a
Com relação aos algoritmos, analise as afirmativas abaixo.
I - Algoritmo é qualquer procedimento computacional bem
definido que toma algum valor ou conjunto de valores
como entrada e produz algum valor ou conjunto de
valores como saída.
II - Para pequenas entradas, os algoritmos de ordenação por
inserção possuem tempo de execução mais rápido que
algoritmos de ordenação por intercalação.
III- Bubblesort é um algoritmo de ordenação que funciona
permutando repetidamente elementos adjacentes que estão
fora de ordem.
Assinale a opção correta.
Acerca de organização de arquivos e métodos de acesso, assinale a opção correta.
Assinale a opção que apresenta o algoritmo de ordenação com o pior desempenho, considerando-se um vetor de 100 elementos, com valores inteiros ordenados em ordem inversa ao do algoritmo de ordenação.
Considere um array R que contém 1.000.000 de chaves
ordenadas.
Assinale o número máximo de acessos a R necessários para
encontrar uma determinada chave.
Assinale a opção que apresenta o algoritmo de ordenação cujo tempo de execução do pior caso é Θ(n2) sobre um arranjo de entrada de n números, porém é normalmente o mais eficiente para ordenação, devido a sua ótima complexidade de tempo na média e no melhor caso: Θ(n.lgn), e também apresenta a vantagem da ordenação local e que funciona bem para ambientes de memória virtual.
A respeito de algoritmos e estruturas de dados, julgue o próximo item.
É importante considerar os diversos tipos de chaves existentes na organização de arquivos, em particular,
Correlacione os algoritmos internos de ordenação de listas da coluna à esquerda com sua descrição, na coluna à direita.
1) Bubblesort.
2) Ordenação por Seleção
3) Ordenação por Inserção
4) Shellsort
5) Quicksort
( ) Escolhe-se um pivot e particiona-se a lista em duas sublistas: uma com os elementos menores que ele e outra com os maiores, que, ao serem ordenadas e combinadas com o pivot, geram uma lista ordenada. O processo é aplicado às partições para ordená-las. Embora tenha uma complexidade de pior caso de O(n2 ), no caso médio é de O(n log n).
( ) Encontra-se o menor item do vetor. Troca-se com o item da primeira posição do vetor.
Repetem-se essas duas operações com os n − 1 itens restantes, depois com os n − 2
itens, até que reste apenas um elemento.
( ) Método preferido dos jogadores de cartas. A cada momento existem duas partes na lista:
uma ordenada (destino) e outra não ordenada (fonte). Inicialmente a lista destino tem
apenas o primeiro elemento, e a fonte os demais elementos. Em cada passo a partir de
i=2, seleciona-se o i-ésimo item da lista fonte. Deve-se colocá-lo no lugar apropriado na
lista destino, de acordo com o critério de ordenação.
( ) É uma extensão de um outro algoritmo de ordenação conhecido e permite trocas de elementos distantes um do outro, não necessariamente adjacentes. Os itens separados de h posições são rearranjados. Todo h-ésimo item leva a uma lista ordenada. Tal lista é dita estar h-ordenada.
( ) Varre-se a lista trocando-se de posição os elementos adjacentes fora de ordem. Varre-se a lista até que não haja mais trocas e, neste caso, a lista está ordenada.
A sequência correta, de cima para baixo, é:
A ordenação de elementos em um vetor pode ser executada a partir de diversos algoritmos conhecidos e que são adequados para situações específicas. Sobre algoritmos de ordenação, dadas as seguintes afirmativas,
I. O algoritmo Bubble Sort é eficiente para ordenar poucos elementos, mas é lento para ordenar muitos itens.
II. O algoritmo Selection Sort para ordenação crescente
consiste em mover o menor valor do vetor para a primeira
posição, depois o segundo menor para a segunda posição e
assim sucessivamente até os dois últimos valores.
III. O algoritmo Quick Sort ordena os valores de um vetor através de sucessivas seleções do elemento correto a ser posicionado em um segmento ordenado.
verifica-se que está(ão) correta(s)
A respeito dos algoritmos de classificação, julgue o item a seguir.
No pior caso, quando o vetor está inversamente ordenado, o
algoritmo booble sort executa n2
operações para a
ordenação de um vetor de n elementos.
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.