Considere o seguinte algoritmo, responsável por realizar a ...

Próximas questões
Com base no mesmo assunto
Q827352 Algoritmos e Estrutura de Dados

Considere o seguinte algoritmo, responsável por realizar a ordenação de um array de dados.


Imagem associada para resolução da questão


Podemos afirmar que o método de ordenação utilizado pelo algoritmo é o:

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Prezados,

O funcionamento que vemos nesse algoritmo é de percorrer o vetor passado como parâmetro diversas vezes ( 2 estruturas de repetição aninhadas percorrendo o vetor ) , e em cada passagem flutuamos para o topo o maior elemento da sequencia.

Essa é o funcionamento do bubble Sort

Portanto a alternativa correta é a letra E


Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

 BubbleSort: Ou classificação por bolha  é um método de ordenação por troca. É a mais conhecida dentre todas as técnicas , por ser fácil de compreender e implementar. O problema dessa técnica é que seu desempenho é baixo, se comparado ao das outras.

Na bubble sort , cada elemento de um vetor é comparado com seu sucessor , e os dois são trocados de posição caso estejam fora de ordem.

 

Letra E

 

Estrutura de dados -  editora Senac - Diversos autores

 

 

Eu, particularmente, acho difícil identificar o tipo de algoritmo de ordenação analisando o código. Consigo identificar melhor pelos conceitos, como pivô, elemento maior para o topo, divisão e conquista etc.

 

Os códigos são fáceis de confundir para os diferentes algoritmos.

macete: pra identificar o bubble sort, há uma variável temporária que é usada como auxilio a fim de trocar valores de 2 variáveis

no caso do BubbleSort é mais fácil

 

tem que ver o seguinte

 

Elemento da posição i é comparado com o elemento da posição i + 1

 

 

vide questao Q855763

 

 

O algoritmo de ordenação baseado em vários percursos sobre o array, realizando, quando necessárias, trocas entre pares de elementos consecutivos denomina-se método: 

 a)

das trocas (exchange sort);

 b)

da inserção (insertion sort);

 c)

da bolha (bubble sort);

 d)

da seleção (selection sort);

 e)

da permuta (permutation sort).

Obviamente o algoritmo tem complexidade quadrática. Percebe-se pelos dois laços de repetição.

Logo, as limitamos a questão a duas possibilidades: bubble-sort e insertion-sort (selection também, mas não é uma alternativa).

O bubble sort, como o nome sugere, é um algoritmo de flutuação, aonde o maior valor vai "flutuar" até a última posição do vetor, ou o inverso, como é o caso: o menor flutua em direção a posição inicial do vetor: if(data[j] < data[j-1]) então data[j-1] recebe o valor em data[j] e o indice j é decrementado para repetir o processo.

Diferencia-se do insertion sort, que se assemelha a inserção de uma nova carta de baralho na mão de um jogador, o qual coloca a nova carta na posição correspondente que mantém a mão ordenada. Na pratica, o insertion sort começa comparando a posição atual com as anteriores (que já estão ordenadas) e se encontra um elemento maior que o elemento em analise, move este valor uma posição a frente, e continua até não encontrar valor maior que o elemento em analise. Por fim, insere o elemento em analise na posição cujo valor anterior se deslocou pra frente com os demais.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo