Розглянемо масив Array, який необхідно відсортувати. В даному алгоритмі нам знадобляться декілька додаткових змінних: наші улюблені герої, які мають справи з будь-якими масивами - iter і jter, N - розмір масиву, і змінна, яка потрібна для тимчасового зберігання значення масиву - x. Код сортування алгоритмом сортування бульбашками буде мати наступний вигляд:
for (iter=1; iter<N; iter++) /* зовнішній цикл */
{
    for (jter=N-1; jter>=iter; jter--) /* внутрішній цикл */
    {
        if (Array[jter]<Array[jter-1]) /* умова перебору */
        {
            /* міняємо місцями значення масиву*/
            
            /* зберігаємо значення більшого елементу в змінну */
            x = Array[jter-1] ; 
            /* переміщамо менший елемент на одну позицію вліво */
            Array[jter-1] = Array[jter] ;
            /* більший елемент переміщаємо на одну позицію вправо */ 
            Array[jter] = x ;
        }
    }
}
В даному алгоримі, знову ж таки, ми маємо два цикли, один вкладений у інший. Зовнішній цикл призначений для перебору усіх елементів з другого по останній (у внутрішьому циклі це враховано). Внутрішній цикл виконаний за допомогою модифікованого лінійного пошуку з інваріантою, і призначений для відсортовування елементів перед поточною позицією зовнішнього циклу. Якщо внутрішній цикл, знайшов елемент, більший за усі інші, він поступово, з кожною ітерацією, буде переміщати його вправо (у випадку порядку зростання), аж поки він не опиниться в самому кінці масиву. Окрім того, зовнішній цикл робить перебір в прямому порядку - від другого до останнього, а внутрішній цикл у зворотньому - від останнього до поточної позиції зовнішнього циклу. Проста програма, яка використовує даний алгоритм на C++ може виглядати наступним чином:
#include <iostream>
using namespace std; 

int main (int argc, char** argv)
{
    /* масив даних */
    int Array [] = {11, 5, 7, 8, 3, 4, 2, 9, 0, 1, 6, 10, 13, 12} ;
    
    int N = sizeof (Array) / sizeof (Array[0]) ; /* дізнаємося довжину масиву */

    int iter, jter, kter ; /* бігунки-ітератори для перебору масиву */
    
    /* змінна, в якій тимччасово зберігається значення елементу масива */
    int x ; 
    
    /* виводимо масив на екран для наглядності */
    for (iter=0; iter<N; iter++)
    { cout << Array[iter] << " " ; }
    cout << endl ;

    for (iter=1; iter<N; iter++) /* зовнішній цикл */
    {
        for (jter=N-1; jter>=iter; jter--) /* внутрішній цикл */
        {
            if (Array[jter]<Array[jter-1]) /* умова перебору */
            {
                /* міняємо місцями значення масиву*/
                
                /* зберігаємо значення більшого елементу в змінну */
                x = Array[jter-1] ; 
                /* переміщамо менший елемент на одну позицію вліво */
                Array[jter-1] = Array[jter] ;
                /* більший елемент переміщаємо на одну позицію вправо */ 
                Array[jter] = x ;
            }
        }
    }
 
    /* виводимо масив на екран */
    for (iter=0; iter<N; iter++)
    { cout << Array[iter] << " " ; }
    cout << endl ;
 
    return 0 ;  
}
Пілся виконання програми ми отримаємо наступне: bubble_sort_ascending Для того щоб відсортувати масив в порядку спадання, необхідно замінити оператор '<' на оператор '>' у операторі if внутрішнього циклу алгоритму:
#include <iostream>
using namespace std; 

int main (int argc, char** argv)
{
    /* масив даних */
    int Array [] = {11, 5, 7, 8, 3, 4, 2, 9, 0, 1, 6, 10, 13, 12} ;
    
    int N = sizeof (Array) / sizeof (Array[0]) ; /* дізнаємося довжину масиву */

    int iter, jter, kter ; /* бігунки-ітератори для перебору масиву */
    
    /* змінна, в якій тимччасово зберігається значення елементу масива */
    int x ; 
    
    /* виводимо масив на екран для наглядності */
    for (iter=0; iter<N; iter++)
    { cout << Array[iter] << " " ; }
    cout << endl ;

    for (iter=1; iter<N; iter++) /* зовнішній цикл */
    {
        for (jter=N-1; jter>=iter; jter--) /* внутрішній цикл */
        {
            if (Array[jter]>Array[jter-1]) /* умова перебору */
            {
                /* міняємо місцями значення масиву*/
                
                /* зберігаємо значення меншого елементу в змінну */
                x = Array[jter-1] ; 
                /* переміщамо більший елемент на одну позицію вліво */
                Array[jter-1] = Array[jter] ;
                /* менший елемент переміщаємо на одну позицію вправо */ 
                Array[jter] = x ;
            }
        }
    }
 
    /* виводимо масив на екран */
    for (iter=0; iter<N; iter++)
    { cout << Array[iter] << " " ; }
    cout << endl ;
 
    return 0 ; /* вихід з програми */  
} 
Після виконання даної програми ми отримаємо наступне: bubble_sort_descending