Как работает сортировка пузырьком?
Bubble sort — это когда ты циклом проходишь по массиву чисел и сравниваешь пары. 
Если первое число больше второго — ты меняешь их местами и начинаешь сначала. 
Таким образом за O(n2) операций ты сможешь выстроить всю цепочку. 
В коде ровно это и написано — объявляются два цикла, в первом элемент массива стартует с 0, второй с 1, значения сравниваются и если первое больше второго — они меняются местами и массив перезаписывается. И так до тех пор, пока все цепочка не будет отсортирована от меньшего к большему. 
Чудовищно долгая сортировка. Банальная бинарная сортировка значительно быстрее пузырька.
15 Sorting Algorithms in 6 Minutes (пузырек на четвертой минуте)Visualization and Comparison of Sorting Algorithms (пузырек слева внизу)Подробная визуализация по шагам
На этом канале есть и другие виды сортировки.Описание текстом