Bubble sort · Ordenação por bolha
Put the smallest time first
- Three race times sit in an array:
14,9,11. The smallest should come first. - Compare each pair of neighbours. When the left one is larger, swap them.
- That single comparison does not finish the list. The next pair is compared after it.
Coloque o menor tempo primeiro
- Três tempos de corrida estão em uma matriz:
14,9,11. O menor deve vir primeiro. - Compare cada par de vizinhos. Quando o esquerdo for maior, troque-os.
- Essa única comparação não termina a lista. O próximo par é comparado depois dele.
DECLARE Score : ARRAY[1:3] OF INTEGER
DECLARE J, Temp : INTEGER
Score[1] ← 14
Score[2] ← 9
Score[3] ← 11
FOR J ← 1 TO 2
IF Score[J] > Score[J + 1]
THEN
Temp ← Score[J]
Score[J] ← Score[J + 1]
Score[J + 1] ← Temp
ENDIF
NEXT J
OUTPUT Score[1]
OUTPUT Score[2]
OUTPUT Score[3]
Repeat the pass
- One pass of the inner loop bubbles the largest value it sees toward the end.
- The outer loop repeats the pass. For four values, three passes are enough.
- This is the syllabus's bubble sort. A linear search, which you wrote earlier, only looks. A sort rearranges.
Repita a passagem
- Uma passagem do loop interno borbulha o maior valor que vê em direção ao final.
- O loop externo repete a passagem. Para quatro valores, três passagens são suficientes.
- Esta é a ordenação por bolha do programa de estudos. Uma busca linear, que você escreveu antes, apenas olha. Uma ordenação rearranja.
DECLARE Score : ARRAY[1:4] OF INTEGER
DECLARE I, J, Temp : INTEGER
Score[1] ← 4
Score[2] ← 1
Score[3] ← 3
Score[4] ← 2
FOR I ← 1 TO 3
FOR J ← 1 TO 3
IF Score[J] > Score[J + 1]
THEN
Temp ← Score[J]
Score[J] ← Score[J + 1]
Score[J + 1] ← Temp
ENDIF
NEXT J
NEXT I
OUTPUT Score[1]
OUTPUT Score[2]
OUTPUT Score[3]
OUTPUT Score[4]
Watch out
- Swap with a
Tempvariable.Score[J] ← Score[J + 1]alone deletes the left value. - The inner
NEXTnamesJ. The outerNEXTnamesI.
Atenção
- Troque com uma variável
Temp. UmScore[J] ← Score[J + 1]sozinho exclui o valor esquerdo. - O
NEXTinterno nomeiaJ. ONEXTexterno nomeiaI.
Common mistakes
- The test is "left is greater", so the smaller value moves left. The other way sorts into reverse order.
- Arrays in this course count from 1. The last pair is the cell just before the end, and the last cell.
Erros comuns
- O teste é "esquerda é maior", então o valor menor se move para a esquerda. O outro caminho ordena em ordem inversa.
- Matrizes neste curso contam a partir de 1. O último par é a célula imediatamente antes do final e a última célula.
Now you try
- The first task is one pass. The second is the full sort. Output each value on its own line.
- Press Check answer to test it.
Agora você tenta
- A primeira tarefa é uma passagem. A segunda é a ordenação completa. Imprima cada valor em sua própria linha.
- Pressione Check answer para testá-lo.
The array Score holds · contém 14, 9, 11. Make one · um pass that swaps a neighbour when the left value is larger. Output the three values, one per line (9, then 11, then 14). · O array Score contém 14, 9, 11. Faça uma passagem que troque um vizinho quando o valor da esquerda for maior. Saia com os três valores, um por linha (9, depois 11, depois 14).
Click Run to see the output here. · Clique em Executar para ver a saída aqui.
The array Score holds · contém 4, 1, 3, 2. Bubble-sort it into ascending order and output the four values, one per line. · O array Score contém 4, 1, 3, 2. Ordenação bolha para ordem crescente e imprima os quatro valores, um por linha.
Click Run to see the output here. · Clique em Executar para ver a saída aqui.