Considere o seguinte algoritmo, responsável por realizar a ...
Considere o seguinte algoritmo, responsável por realizar a ordenação de um array de dados.
Podemos afirmar que o método de ordenação utilizado pelo
algoritmo é o:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
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