バブル・ソートは、数値やそれに匹敵するものの配列をソートするアルゴリズムである。隣り合う2つの要素を入れ替え、大きい方が右になるようにする。このプロセスは、左から右への各位置に対して繰り返される。この後、配列の中で最大の数値が最後の位置に来る。次に、アルゴリズムは再び左端から始まり、右に向かって隣同士を入れ替えますが、今度は最後の位置の手前で止めることができます。最大の数が常に「泡のように」出てくるので、これはバブルソートと呼ばれる。
以下はその例である：
```
4 8 3 6 1
# don't swap 4, 8 as 8 > 4
4 8 3 6 1
# swap 8, 3
4 3 8 6 1
# swap 8, 6
4 3 6 8 1
# swap 8, 1; 8 is now correct
4 3 6 1 8
# swap 4, 3
3 4 6 1 8
# don't swap 4, 6 as 6 > 4
3 4 6 1 8
# swap 1, 6; 6 is now correct
3 4 1 6 8
# don't swap 3, 4 as 4 > 3
3 4 1 6 8
# swap 4, 1; 4 is now correct
3 1 4 6 8
# swap 3, 1; 3 is now correct
1 3 4 6 8
# array is sorted
```
Bubble sort is a sorting algorithm to sort arrays of numbers or other comparable things. It works by swapping two elements that are next to each other so that the bigger one is on the right afterwards. This process is repeated for each position from left to right. After this the biggest number in the array is at the last position. Next, the algorithm starts at the very left again and swaps neighbours going to the right, but this time it can stop before the last position, as the biggest number is already there. It is called bubble sort as the biggest number always "bubbles" up.
Here is an example:
```
4 8 3 6 1
# don't swap 4, 8 as 8 > 4
4 8 3 6 1
# swap 8, 3
4 3 8 6 1
# swap 8, 6
4 3 6 8 1
# swap 8, 1; 8 is now correct
4 3 6 1 8
# swap 4, 3
3 4 6 1 8
# don't swap 4, 6 as 6 > 4
3 4 6 1 8
# swap 1, 6; 6 is now correct
3 4 1 6 8
# don't swap 3, 4 as 4 > 3
3 4 1 6 8
# swap 4, 1; 4 is now correct
3 1 4 6 8
# swap 3, 1; 3 is now correct
1 3 4 6 8
# array is sorted
```