# Bubble Sort in Javascript: A Step-By-Step Tutorial

Posted on 07 November 2022

Here we go for a series of articles about sorting algorithms.

For this first part, we will review the Bubble sort algorithm, or **Bubble Sort** in English.

## How Bubble Sort works

The principle is simple and the name *Bubble sort *is not chosen by chance :

- The largest values considered as heavy sink progressively to the bottom of the list.
- The smallest values considered as light rise like bubbles to the top of the list.

Let's take the following number series :

By iterating over each number in the series, if the current number is greater than the next number, then we swap their positions :

When a complete loop over the series is done without any swap being performed, the sorting operation is done.

Code example

Let's translate all that into code with a Javascript example :

```
const swap = ( arr, i, j ) => {
let temp = arr[ i ];
arr[ i ] = arr[ j ];
arr[ j ] = temp;
}
const bubbleSort = arr => {
for ( let i = 0; i < arr.length - 1; i++ ) {
let swapped = false;
for ( let j = 0; j < arr.length - 1; j++ ) {
if ( arr[ j ] > arr[ j + 1 ] ) {
swap( arr, j, j + 1 );
swapped = true;
}
}
// SI aucun nombre n'a été permuté lors de la boucle précedente
// ALORS le tri est terminé et on peut sortir de la boucle
if ( !swapped ) {
break;
}
}
return arr;
}
const arr = [ 2, 1, 4, 3, 5, 7, 6, 8 ];
bubbleSort( arr ) // [ 1, 2, 3, 4, 5, 6, 7, 8 ]
```

## Performances

**Do not use this algorithm in production**! Although it is easy to understand, bubble Sort is actually much less performant than other of its peers, such as **Quick Sort** or **Insertion Sort** that we will study in future articles.

Bubble Sort is mainly presented as an educational tool to introduce beginners to sorting algorithms.

## 0 comment