O algoritmo a seguir, descrito em pseudocódigo, pode ser uti...
O algoritmo a seguir, descrito em pseudocódigo, pode ser utilizado para ordenar um vetor V[1..n] em ordem crescente.
Este algoritmo é conhecido como:
Comentários
Veja os comentários dos nossos alunos
Quem não tem acesso: --> E
Bubble sort : percorre a lista de itens ordenáveis do início ao fim, verificando a ordem dos elementos dois a dois, e trocando-os de lugar se necessário. Percorre-se a lista até que nenhum elemento tenha sido trocado de lugar na passagem anterior.
Ordenação por Inserção (Insertion Sort)
- Algoritmo simples e eficiente quando aplicado em pequenas listas;
- A lista é percorrida da esquerda para a direita, à medida que avança vai deixando os elementos mais à esquerda ordenados.
- A ordenação da tabela pode ser estendida por meio de comparações sucessivas com os elementos anteriores.
- Complexidade O(n²) para o pior caso e para o caso médio;
Ordenação por Intercalação (Mergesort)
- Utiliza a estratégia dividir para conquistar;
- Consiste em dividir a lista original em duas metades e ordená-las;
- Após a divisão da lista em listas menores, resolve-se cada pedaço e depois junta (merge) os resultados.
- Sua eficiência depende da implementação da tabela temporária
- Possui complexidade O(n log n) para todos os casos.
Ordenação Rápida (Quicksort)
- A ordenação é rápida e é mais eficientes
- O quicksort adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores".
- Escolhe-se um elemento (pivô), em seguida a lista é organizada de forma a deixar os elementos menores à sua esquerda e os maiores à direita;
- Se a tabela está ordenada na ordem inversa à desejada, a escolha do pivô provoca o pior desempenho do algoritmo. Uma solução utilizada é a escolha da mediana dentre três elementos: o primeiro, o último e o central.
- Possui complexidade O(n²) no pior caso e O(n log n) no caso médio;
Ordenação Bolha (Bubble Sort)
- Algoritmo mais simples e menos eficiente;
- Uma iteração se limita a percorrer a tabela do início ao fim, sem interrupção, trocando de posição dois elementos consecutivos sempre que estes se apresentem fora de ordem.
- A intenção do método é mover os elementos maiores em direção ao fim da tabela.
- Ao terminar a primeira iteração pode-se garantir que as trocas realizadas posicionam o maior elemento na última posição. Na segunda iteração, o segundo maior elemento é posicionado, e assim sucessivamente.
- A estrutura é percorrida quantas vezes for necessária, tornando o algoritmo ineficiente para listas muito grandes.
- Complexidade O(n²) para o pior caso e para o caso médio;
Alternativa: E
Força Guerreiro!!!!!!
Apenas complementando os amigos, um BIZU:
A maioria das questões nesse molde pedem Bubble ou Insertion
Se tiver uma variável auxiliar (aux,tmp) , efetuado a troca (intercalação) é BUBLLE
Se observamos no código , a nossa variável de auxiliar no for (looping) estiver recebendo i=i+1 - INSERTION ( começa do segundo)
Se tiver também alguma variável = min -> SELECTION
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo