Ordenação - Exercícios
2
1 – CESGRANRIO - Bacen 2010 – Analista de Sistemas
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?
a) Merge sort
b) Insertion sort
c) Bubble sort
d) Quick sort
2 – CESGRANRIO – PETROBRÁS 2006 – Analista de
Sistemas Pleno – Engenharia de Software
3 – CESGRANRIO – PETROBRÁS 2006 – Analista de
Sistemas Pleno – Engenharia de Software (Adaptada)
3- Qual o algoritmo de ordenação utilizado? a) Bubble sort
b) Insert Sort c) Selection Sort d) Merge Sort
5
4 – CEPS – UFPA 2010 – ANALISTA DE TECNOLOGIA DA
INFORMAÇÃO
6
5 – COPEVE-UFAL – UFAL 2011 – Analista de Tecnologia
da Informação
A ordem de complexidade do pior caso do algoritmo de
ordenação Quicksort é:
a) O(n)
b) O (n log n)
c) O(2
n)
d) O(n
2)
e) O(n
3)
7
6 – CESPE – FUB 2011 – Analista de Tecnologia da
Informação – Específicos
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.
8
7 – CESPE – ABIN 2010 – OFICIAL TÉCNICO DE
INTELIGÊNCIA – ÁREA DE SUPORTE A REDE DE DADOS
A estabilidade de um método de ordenação é importante
quando o conjunto de dados já está parcialmente ordenado.
9
8 – CESPE – ABIN 2010 – OFICIAL TÉCNICO DE
INTELIGÊNCIA – ÁREA DE SUPORTE A REDE DE DADOS
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.
10
9 – CESPE – ABIN 2010 – OFICIAL TÉCNICO DE
INTELIGÊNCIA – ÁREA DE SUPORTE A REDE DE DADOS
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.
11
10 – CESPE – BASA 2010 – Técnico Científico –
Tecnologia da Informação – Administração de Dados
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
12
11 – CESGRANRIO – Petrobrás 2010 – Analista de
Sistemas Júnior – Engenharia de Software
Um heap (fila de prioridade) é uma estrutura de dados muito importante, que tem duas utilidades principais: organizar acesso a um recurso com base na prioridade dos requerentes (processos, impressões, etc.) ou servir como base a um algoritmo de ordenação muito eficiente denominado heapsort. Para poder servir a esses propósitos, um heap possui uma série de propriedades especiais que têm que ser mantidas por todas as operações nelas realizadas. Levando em
consideração estas propriedades, analise as afirmativas abaixo. É correto APENAS o que se afirma em
a) I. b) II. c) III. d) I e II.
12 – CESGRANRIO – PETROBRÁS 2010 – Analista de
Sistemas Júnior – Processos de Negócios
12 – CESGRANRIO – PETROBRÁS 2010 – Analista de
Sistemas Júnior – Processos de Negócios
15
13 – FCC – MPE-RN 2010 – Analista de Tecnologia da
Informação – Banco de Dados
As estratégias de divisão e de conquista são utilizadas
pelos algoritmos de ordenação
a) Selection sort e Insertion sort.
b) Selection sort e Bubble sort.
c) Quick sort e Merge sort
d) Bubble sort e Bucket sort.
e) Shell sort e Count sort.
16
14 – FCC – TJ-PA 2009 – Analista Judiciário – Análise de
Sistemas – Desenvolvimento
A necessidade de rearranjo de um certo conjunto de elementos,
de acordo com um critério específico, indica
a) a possibilidade de uso de qualquer algoritmo de ordenação.
b) o uso estrito de algoritmo de ordenação por inserção direta.
c) o uso estrito de algoritmo de ordenação por seleção direta.
d) o uso estrito de algoritmo de ordenação por permutação.
17
15 – CESPE – ANAC 2009 – Técnico Administrativo –
Informática
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.
16 – CESGRANRIO – PETROBRÁS 2008 – Analista de
Sistemas Júnior – Processos de Negócios
19
17 – CESPE – Polícia Federal 1992 – Perito de
Computação
Acerca dos métodos de classificação interna, marque a opção correta.
(A) O método de inserção se efetiva por selecionar sucessivamente o elemento, ainda não selecionado, de menor chave em um vetor A e colocá-lo num vetor ordenado B na posição definitiva.
(B) No método da bolha, em cada passo, a chave de cada elemento do vetor é
comparada com a chave do seu sucessor, sendo os dois trocados de posição caso estejam fora de ordem. São executados passos sucessivos até que nenhuma troca ocorra, estando o vetor classificado.
(C) Na classificação por intercalação, cada metade do vetor é ordenada pelo método da bolha e a seguir as partes são intercaladas gerado o vetor inteiro classificado.
(D) Na classificação rápida, o vetor é segmentado em partes de tamanho 1, tais partes são intercaladas para formarem segmentos classificados de tamanho 2. Os segmentos de tamanho 2 são intercalados para formarem segmentados de tamanho 4, e assim sucessivamente até se obter o vetor inteiro classificado.
20
CESPE – Polícia Federal 1997 – Perito de Computação
Existem diferentes métodos de ordenação na memória. cada um com
características próprias. que permitem melhor adaptação a uma
determinada quantidade ou tipo de dados. Considere os métodos de
classificação abaixo:
I - Classificação por troca ou método da bolha - o vetor é percorrido
seqüencialmente várias vezes. Cada passagem consiste em comparar
cada elemento com seu sucessor (x[i]com x[i+1]) e trocar os dois
elementos, se eles não estiverem na ordem correta.
II- Classificação por troca de partição ou quicksort - o vetor é
particionado em dois subconjuntos. um à direita e outro à esquerda, de
tal forma que todo elemento do subconjunto à esquerda é menor que
qualquer elemento do subconjunto à direita. Cada um dos subconjuntos
é reparticionado sucessivas vezes, segundo o mesmo critério.
Acerca dos métodos de classificação considerando n elementos, julgue
os seguintes itens.
21
CESPE – Polícia Federal 1997 – Perito de Computação
18) A classificação é recomendada quando o custo de
recuperação freqüente dos elementos ultrapassa a sobrecarga
adicional envolvida para a classificação.
18.2) O método da bolha gera um máximo de O(n2)
comparações no pior caso e O(n) comparações no melhor caso.
quando o vetor já está classificado.
19) O quicksort somente pode ser implementado em linguagens
recursivas, uma vez que sua definição é essencialmente
recursiva.
20) O quicksort tem melhor desempenho para vetores
22
CESPE – Polícia Federal 1997 – Perito de Computação
18) A classificação é recomendada quando o custo de
recuperação freqüente dos elementos ultrapassa a sobrecarga
adicional envolvida para a classificação.
18.2) O método da bolha gera um máximo de O(n2)
comparações no pior caso e O(n) comparações no melhor caso.
quando o vetor já está classificado.
19) O quicksort somente pode ser implementado em linguagens
recursivas, uma vez que sua definição é essencialmente
recursiva.
20) O quicksort tem melhor desempenho para vetores
21 – CESGRANRIO – TRANSPETRO 2011 –
Analista de Sistemas Júnior
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:
a) 10 comparações e 8 trocas
b) 10 comparações e 9 trocas
c) 10 comparações e 10 trocas
d) 16 comparações e 9 trocas
e) 16 comparações e 10 trocas
24
22 - Suponha que um algoritmo de ordem quadrática para ordenar um vetor
de 8 inteiros após 4 iterações no loop principal, resultou no seguinte vetor:
2 4 5 7 8 1 3 6
Qual das afirmações listadas é correta?
A) O algoritmo poderia ser de ordenação por seleção ou
de ordenação por inserção.
B) O algoritmo poderia ser de ordenação por seleção,
mas não poderia ser ordenação por inserção.
C) O algoritmo poderia ser de ordenação por inserção,
mas não poderia ser ordenação por seleção.
D) O algoritmo não é nem o de ordenação por seleção e
nem o de ordenação por inserção.
25
23 - Suponha que um algoritmo de ordem quadrática para ordenar um vetor de 10 inteiros após 4 iterações no loop principal, resultou no seguinte vetor:
1 2 3 4 5 0 6 7 8 9
Qual das afirmações listadas é correta? (Nota: Nosso algoritmo de ordenação por seleção pega os maiores elementos primeiro)
A) O algoritmo poderia ser de ordenação por seleção ou de ordenação por inserção.
B) O algoritmo poderia ser de ordenação por seleção, mas não poderia ser ordenação por inserção.
C) O algoritmo poderia ser de ordenação por inserção, mas não poderia ser ordenação por seleção.
D) O algoritmo não é nem o de ordenação por seleção e nem o de ordenação por inserção.
24 - CESGRANRIO – PETROBRÁS – 2011 – Analista
de Sistemas Júnior – Engenharia de Software
25 – CESGRANRIO – TRANSPETRO 2011 –
Analista de Sistemas Júnior
26 - CESGRANRIO – PETROBRÁS – 2010 – Analista
de Sistemas Júnior – Engenharia de Software
O algoritmo de ordenação de pior complexidade
temporal no caso médio, dentre os que se
seguem, é
(A) Merge sort.
(B) Bubble sort.
(C) Heapsort.
(D) Quicksort.
29
27 – CESGRANRIO – CHESF 2012 – ANALISTA DE
SISTEMAS
Considere que uma fila de prioridades para caracteres está armazenada em um vetor, através de um heap binário, conforme mostra a figura. Considere, também, que as posições desse vetor são indexadas a começar de um.
Quais são, respectivamente, os caracteres armazenados no filho esquerdo, no filho direito e no pai do nó correspondente ao índice 2? (A) P, Q e S (B) P, Z e S (C) Q, S e U (D) S, T e P (E) U, T e Q
30
28 – CESGRANRIO – LIQUIGÁS 2012 – TI –
DESENVOLVIMENTO DE APLICAÇÕES
Considere o seguinte trecho de código
implementado em Java. O código apresenta a implentação de uma classe ArraySort, que contém um método denominado Sort, cuja finalidade é implementar a
(A) arrumação dos nós na forma adequada em uma árvore binária.
(B) arrumação dos nós na forma adequada em uma árvore B.
(C) ordenação em uma lista encadeada utilizando o método do quicksort.
(D) ordenação em um vetor utilizando o método do quicksort.
(E) ordenação em um vetor utilizando o método da bolha (bubble sort).
31
29 – CESGRANRIO – DECEA 2009 – Engenharia da
Computação
32
Gabarito
●