Informática, perguntado por DeltaX, 1 ano atrás

Alguém poderia me explicar a lógica desse algoritmo no Visualg.

OBS: vi em uma vídeo aula, porém não consigo entender a lógica usada para se chegar a isso.

Anexos:

Soluções para a tarefa

Respondido por bokomoko
1
O algoritmo inicia definindo várias variáveis, entre elas um vetor.

Em seguida, lê 10 valores e os armazena num vetor. Para ele repetir a leitura de dados 10 vezes usa-se um comando de loop "para i de 1 até 10", ou seja, o i vai variar de 1 a 10 e dentro do "para" tem um comando de leitura

Em seguida, um loop vai varia o i de 1 a 9
dentro desse loop tem outro loop que varia o j (jota) de i+1 até 10

A ideia aí é proporciona a comparação de dois elementos do vetor. Ele vai comparar o elemento 1 com o 2, 3, 4, 5, 6, 7, 8, 9 e 10
depois o elemento 2 com 3, 4,5,6,7 
e assim por diante até o elemento 9, que ele só vai comparar com o 10

Toda vez que ele compara os dois elementos, ele testa se um é maior que outro. Se for maior, então está "fora de ordem", ele troca os elementos de posição.

O que falta nesse algoritmo é 
1 - Marcar que encontrou um elemento fora de ordem 
2 - Voltar e repetir tudo isso aí dito acima até ele varrer todos e não encontrar nenhum fora de ordem.

Esse algoritmo está incompleto. Trata-se de uma implementação do "bubble-sort" , um dos algoritmos mais conhecidos da história da computação e que serve para colocar uma lista de números em ordem crescente.

Ele serve para ordenar lista de números, nomes em ordem alfabética, valores, etc.

Só que tá errado. 

Se quiser, eu conserto ele para você.



bokomoko: Esse algoritmo é simples e fácil de programar porém ele não é o mais eficiente
DeltaX: Obrigado, esse algoritmo faz parte do curso q estou fazendo e no momento estamos vendo vetores e matrizes, o professor percebeu o erro e corrigiu, mas sua resposta me ajudou mais hehe, obrigado mesmo.
DeltaX: teria outra maneira de listar os números em ordem crescente sem ser essa?
bokomoko: Sim, existem diversos outros algoritmos de classificação (colocar em ordem crescente). Como disse, esse é o método mais simples, porém não é o método mais rápido. Procure na internet por "algoritmos de classificação"
bokomoko: A maioria dos algoritmos usa vetores. leem os dados a colocar em ordem crescente e coloca num vetor. Depois classifica o vetor e pronto.
bokomoko: Existe uma maneira de fazer a classificação direta, Lê o dado e já coloca ele na ordem. Usa-se uma "árvore binária". É um algoritmo muito interessante.
DeltaX: Ok obrigado
Perguntas interessantes