Bubble sort · Tri à bulles
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.
Mettre le temps le plus court en premier
- Trois temps de course sont dans un tableau :
14,9,11. Le plus petit doit venir en premier. - Comparez chaque paire de voisins. Si celui de gauche est plus grand, échangez-les.
- Cette unique comparaison ne termine pas la liste. La paire suivante est comparée après celle-ci.
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.
Répéter la passe
- Une passe de la boucle interne fait remonter la plus grande valeur qu'elle voit vers la fin.
- La boucle externe répète la passe. Pour quatre valeurs, trois passes suffisent.
- C'est le tri à bulles du programme officiel. Une recherche linéaire, que vous avez écrite plus tôt, se contente de regarder. Un tri réorganise.
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.
Attention
- Échangez avec une variable
Temp.Score[J] ← Score[J + 1]seul supprime la valeur de gauche. - L'
NEXTinterne porte le nomJ. L'NEXTexterne porte le nomI.
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.
Erreurs courantes
- Le test est « gauche est supérieur », donc la valeur plus petite se déplace vers la gauche. L'autre sens trie dans l'ordre inverse.
- Les tableaux dans ce cours commencent à 1. La dernière paire est la case juste avant la fin, et la dernière case.
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.
À vous maintenant
- La première tâche est une passe. La seconde est le tri complet. Affichez chaque valeur sur sa propre ligne.
- Appuyez sur Vérifier la réponse pour tester.
The array Score holds · contient 14, 9, 11. Make one · une pass that swaps a neighbour when the left value is larger. Output the three values, one per line (9, then 11, then 14). · Le tableau Score contient 14, 9, 11. Effectuer un seul passage qui échange un voisin lorsque la valeur de gauche est plus grande. Afficher les trois valeurs, une par ligne (9, puis 11, puis 14).
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
The array Score holds · contient 4, 1, 3, 2. Bubble-sort it into ascending order and output the four values, one per line. · Le tableau Score contient 4, 1, 3, 2. Triez-le par ordre croissant avec le tri bulle et affichez les quatre valeurs, une par ligne.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.