Bubble sort is a simple sorting algorithm that works by repeatedly stepping through the list to be sorted, comparing each pair of adjacent items and swapping them if they are in the wrong order. The algorithm gets its name from the way smaller elements "bubble" to the top of the list. Because it only uses comparisons to operate on elements, it is a comparison sort. Although the algorithm is simple, most of the other sorting algorithms are more efficient for large lists. (Source: Wikipedia)

The **code** below is an is one way of implementing a bubble sort. Read through it and try to fully understand each line! You can hover over each line for further explanation. The tricky part is understanding the constraints in the for loops! Use the **graph** to watch how bubble sorts work - comparing two elements at a time.

Note: In the graph, bList[j] is black and bList[j+1] is grey!

bList = array of sortable items function bubbleSort(bList){ for(int i = 1; i <= bList.length; i++){ for(int j = 1; j <= bList.length-i; j++){ //current value of i = 0, j = 0 if (bList[j] > bList[j+1]) swapValueOf(bList[j], bList[j+1]) } } return bList }

Index Value 1 8000 2 1492 3 2780 4 5000 5 702 6 2288 7 2022 8 6094 9 6973 10 153 11 347 12 4025 13 2517 14 6749 15 7507 16 1929