Questões de Concurso sobre Métodos de ordenação

 
 
Disciplina 1
Assunto 8
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
135 questões encontradas
Questões por página
20
Mais recentes
 

Seja um array de inteiros de 32 bits com 10.000 elementos, gerados e posicionados aleatoriamente nesse array.


Nessas condições, qual algoritmo irá ordenar esse array com um consumo de tempo, em seu caso médio, proporcional ao consumo de tempo do pior caso do Quick sort?


A

Bucket sort


B

Heap sort


C

Insertion sort


D

Merge sort


E

Tree sort

Bárbara implementa um algoritmo de ordenação estável cuja complexidade temporal média OT pertence a O(n.logn) e cuja complexidade espacial OE pertence a O(n), sendo n o tamanho do vetor a ser ordenado.


O algoritmo implementado é o:


A

quick sort;


B

merge sort;


C

bubble sort;


D

insertion sort;


E

selection sort.

O quicksort é um dos algoritmos mais famosos de ordenação, o qual, por sua vez, é um tema bastante estudado na informática. Mas, qual a vantagem do quicksort afinal?


Assinale a alternativa que contém uma descrição correta sobre o algoritmo.


A

Apesar de não estável, o quicksort é um algoritmo rápido, cujas operações são realizadas sem a necessidade de vetor auxiliar, o qual ainda demanda um esforço computacional baixo, cujo caso médio é O(n log n).


B

Mesmo sendo estável, o quicksort é um algoritmo rápido, cujas operações são realizadas sem a necessidade de vetor auxiliar, o qual ainda demanda um esforço computacional baixo, cujo caso médio é O(log n).


C

Mesmo sendo estável, o quicksort é um algoritmo rápido, cujas operações são realizadas com uso de vetor auxiliar, o qual ainda demanda um esforço computacional baixo, cujo caso médio é O(n log n).


D

Mesmo sendo estável, o quicksort é um algoritmo rápido, cujas operações são realizadas com uso de vetor auxiliar, o qual ainda demanda um esforço computacional baixo, cujo caso médio é O(log n).


E

Apesar de não estável, o quicksort é um algoritmo rápido, cujas operações são realizadas com uso de vetor auxiliar, o qual ainda demanda um esforço computacional baixo, cujo caso médio é O(log n).

Neste algoritmo de ordenação a Ideia básica do algoritmo é:


- Compare o primeiro elemento com o segundo. Se estiverem desordenados, então efetue a troca de posição.

- Compare o segundo elemento com o terceiro e efetue a troca de posição, se necessário;

- Repita a operação anterior até que o penúltimo elemento seja comparado ao último. Ao final desta repetição, o elemento de maior valor estará em sua posição correta, a n-ésima posição do vetor;

- Continue a ordenação posicionando o segundo maior elemento, o terceiro,... até que todo o vetor esteja ordenado.


Este algoritmo é chamado de:


A

Selection Sort.


B

Fast Sort.


C

Bubble Sort.


D

Merge Sort.


E

Lazy Sort.

Sobre os algoritmos para ordenação de dados, é correto afirmar que o


A

heapsort é considerado um algoritmo estável, fundamentado na estratégia de divisão e conquista.


B

mergesort é considerado um algoritmo instável, apresentando uma complexidade de O(n2) comparações no melhor caso.


C

bubblesort é considerado um algoritmo estável, apresentando uma complexidade de O(n2) comparações no pior caso.


D

insertion sort é considerado um algoritmo instável, apresentando uma complexidade de O(n) comparações no pior caso.


E

quicksort é considerado um algoritmo estável, fundamentado em uma estratégia de inserção de dados em lista.

Considere as seguintes definições relacionadas a algoritmos de ordenação e assinale a alternativa que identifica corretamente as três definições, considerando sua ordem.


1. O algoritmo consiste em percorrer o vetor de itens desordenados da esquerda para a direita, ordenando um item por vez. A cada passo, o item não ordenado é comparado aos itens à sua esquerda (os quais já estão ordenados) de modo a encontrar em qual posição ele deve ser colocado. Esses passos são repetidos para cada um dos itens não ordenados restantes. O algoritmo termina quando o último item do vetor é colocado na posição correta.

2. O algoritmo divide logicamente o vetor em duas partições: uma partição contendo itens ordenados, que é construída da esquerda para a direita na frente (esquerda) do vetor, e uma partição contendo itens restantes não ordenados que ocupam o resto do vetor. Inicialmente, a partição ordenada está vazia e a partição não ordenada é o próprio vetor de entrada. Em cada passo, o algoritmo encontra o menor item na partição não ordenada, trocando-o com o item não ordenado mais à esquerda da partição (colocando-o, portanto, em ordem). Então, o limite lógico entre as partições ordenada e não ordenada é incrementado em uma posição e os passos anteriores são repetidos. O algoritmo termina quando resta apenas um item a ser ordenado.

3. O algoritmo divide o problema em partes menores, resolvendo cada parte separadamente e juntando os resultados posteriormente. O vetor é dividido em duas partes iguais, sendo cada uma delas dividida em duas partes, e assim por diante, até restarem partes com um ou dois itens, cuja ordenação é trivial. Para juntar pares de partes ordenadas, os dois primeiros itens de cada parte são separados e o menor deles é selecionado e posicionado como primeiro elemento. Em seguida, os menores entre os restantes são comparados e posicionados e assim se prossegue até que todos os elementos tenham sido juntados. O procedimento é repetido até que todas as partes tenham sido tratadas.


A

Insertion Sort (ordenação por inserção) – Selection Sort (ordenação por seleção) – Jungle Sort (ordenação selvagem)


B

Selection Sort (ordenação por seleção) – Insertion Sort (ordenação por inserção) – Quick Sort


C

Selection Sort (ordenação por seleção) – Insertion Sort (ordenação por inserção) – Bubble Sort


D

Insertion Sort (ordenação por inserção) – Selection Sort (ordenação por seleção) – Merge Sort


E

Merge Sort – Shell Sort – Bubble Sort

Associe a coluna I à coluna II, em relação aos algoritmos de pesquisa e classificação.


COLUNA I

1. Pesquisa binária

2. Classificação por borbulhamento

3. Classificação por intercalação


COLUNA II

( ) O(n²)

( ) O(log n)

( ) O(n log n)


Assinale a alternativa que apresenta a sequência correta da coluna II.


A

2 - 1 - 3.


B

3 - 1 - 2.


C

1 - 2 - 3.


D

3 - 2 - 1.

Algoritmos de ordenação são técnicas fundamentais na área da computação e são utilizados para organizar e ordenar coleções de dados, como listas ou arrays, de acordo com critérios específicos. Esses algoritmos têm uma ampla gama de aplicações em sistemas computacionais e são essenciais para a eficiência e eficácia de processos, nas mais diversas áreas do mundo do trabalho. Considere o algoritmo de ordenação ilustrado no pseudocódigo abaixo:


função sort(lista, esquerda, direita)

se esquerda < direita

pivo_index = particionar(lista, esquerda, direita)

sort(lista, esquerda, pivo _index - 1)

sort(lista, pivo_index + 1, direita)


função particionar(lista, esquerda, direita)

pivo = lista[direita] # escolhendo o pivo como último

elemento

i = esquerda - 1

para j de esquerda até direita -1

se lista[j] <= pivo

i=i+ 1

trocar(lista[i], lista[j])

trocar(lista[i + 1 ], lista[direita]) # colocando o pivo em sua

posição correta

retornar i + 1


# Inicializando o algoritmo com os índices apropriados

lista= [valores a serem ordenados]

sort(lista, 0, comprimento(lista)-1)


Qual das alternativas abaixo corresponde ao algoritmo em questão?


A

Heap Sort.


B

Bubble Sort.


C

Merge Sort.


D

Counting Sort.


E

Quick Sort.

Observe o pseudocódigo abaixo demonstrado, o qual se trata de uma ordenação por inserção.


INSERTION-SORT(A)


1 for j = 2 to A • comprimento

2 __ chave =A [j]

3 __ // Inserir A [j] na sequência ordenada A [1 .. j -1].

4__ i = j - 1

5 __ while i > 0 e A [i] > chave

6 __ __ __ A [i + 1] = A [i]

7 __ __ __ i = i - 1

8 __ A [i + 1] = chave


Existem determinadas convenções que são praticadas em pseudocódigos, como é o caso do uso representativo de laços, em for e while. Versando somente acerca do segundo dos laços citados, é possível afirmar que ele começa em que linha, e contém qual(is) outra(s), respectivamente?


A

5; 6.


B

5, 6 e7.


C

5; 6 a 8.


D

1; 2 a 4.


E

5, 5.

Sobre o algoritmo de ordenação Merge Sort, ou Ordenação por Mistura, é CORRETO afirmar que:


A

é mais lento que o Método da Bolha (Bubble Sort) quando empregado sobre uma grande quantidade de dados.


B

é mais lento que o Método da Seleção (Selection Sort) quando empregado sobre uma grande quantidade de dados.


C

para pequenos conjuntos, o Merge Sort é sempre mais eficiente que os demais métodos.


D

é o único algoritmo de ordenação na categoria Divisão e Conquista.


E

usa a técnica de ordenação por comparação do tipo dividir-para-conquistar.

Algoritmos de ordenação são responsáveis por ordenar elementos de uma estrutura de dados de forma completa ou parcial. Sobre a complexidade dos algoritmos de ordenação, assinale, a seguir, o algoritmo de ordenação que, no pior caso, tem complexidade igual a O(n log n).


A

Quick sort.


B

Merge sort.


C

Bubble sort.


D

Insertion sort.


E

Selection sort.

Um programador quer ordenar a lista [5, 4, 3]. Qual alternativa representa todas as situações dessa lista até a sua completa ordenação utilizando o método Bubble Sort?


A

[5, 4, 3], [4, 5, 3], [4, 3, 5], [3, 4, 5], [3, 4, 5]


B

[5, 4, 3], [4, 3, 5], [3, 4, 5], [3, 4, 5], [3, 4, 5]


C

[5, 4, 3], [4, 5, 3], [4, 5, 3], [3, 4, 5], [3, 4, 5]


D

[5, 4, 3], [4, 5, 3], [3, 4, 5]


E

[5, 4, 3], [4, 3, 5], [3, 4, 5]

Analise as assertivas abaixo sobre notação big-O e complexidade de algoritmos, observando as afirmações sobre algoritmos de ordenamento:


I. O algoritmo quicksort tem uma complexidade no caso médio de Θ(nlog(n)).

II. O algoritmo mergesort tem uma complexidade no pior caso de O(n log(n)).

III. O algoritmo bubble sort tem uma complexidade no melhor caso de Ω(n).

IV. O algoritmo selection sort tem uma complexidade no melhor caso de Ω(n).


Quais estão corretas?


A

Apenas I.


B

Apenas II.


C

Apenas III e IV.


D

Apenas I, II e III.


E

I, II, III e IV.

Métodos de ordenação são algoritmos usados para organizar elementos de uma sequência em uma ordem específica. Qual método de ordenação tem complexidade de tempo médio O(n log n) e utiliza a técnica de dividir e conquistar?


A

Bubble sort.


B

Selection sort.


C

Insertion sort.


D

Quick sort.


E

Merge sort.

Observe o pseudocódigo a seguir:


1.

2. _ var

3. ___ a, b : inteiro

4. ___ x : vetor[1..10] de inteiro

5.

6. _ procedimento questao( var a, b : inteiro )

7. _ var aux : inteiro

8. _ inicio

9. ___ aux <- a

10. ___ a <- b

11. ___ b <- aux

12. fimprocedimento

13.

14. inicio

15. aleatorio 0,100,3

16. para a de 1 ate 10 faca

17. _ leia(x[a])

18. fimpara

19.

20. para a de 1 ate 10 faca

21. _ para b de 1 ate 9 faca

22. ___ se x[b] > x[b+1] entao

23. ___ __ questao(x[b], x[b+1])

24. ___ fimse

25. _ fimpara

26. fimpara

27.

28. para a de 1 ate 10 faca

29. _ escreval(a:3," - ", x[a])

30. fimpara

31. fimalgoritmo


Trata-se do seguinte tipo de ordenação de dados:


A

Merge.


B

Bubble Sort.


C

Selection Sort.


D

Insertion Sort.

Analise as assertivas abaixo:


I. Uma pilha é um tipo abstrato de dados que, quando implementado, opera utilizando a estratégia LIFO (Last In First Out), enquanto uma fila opera utilizando a estratégia FIFO (First In First Out).

II. O algoritmo de Dijkstra resolve o problema de caminhos mínimos de fonte única em grafos dirigidos de forma gulosa.

III. Bubblesort é um algoritmo de ordenação que funciona permutando repetidamente elementos adjacentes que estão fora de ordem.


Quais estão corretas?


A

Apenas I.


B

Apenas II.


C

Apenas III.


D

Apenas I e III.


E

I, II e III.

   
Gerar simulado