How to implement the bubble sort algorithm in C++

3 Answers

0 votes
#include <iostream>
 
void bubbleSort(int arr[], int len) {
    int temp;
    
    for (int i = 0; i < len - 1; i++) {
        for (int j = 0; j < len - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
               temp = arr[j];
               arr[j] = arr[j + 1];
               arr[j + 1] = temp;
            }
        }
    }
}
 
int main(void) {
    int arr[] = {6, 8, 0, 3, 9, 1, 5, 4, 5};
    int length = sizeof(arr)/sizeof(arr[0]);  
           
    bubbleSort(arr, length);
    
    for (int i = 0; i < length; i++) {   
        std::cout << arr[i] << " ";  
    }  
}

  
  
/*
run:
  
0 1 3 4 5 5 6 8 9 
  
*/

 



answered Sep 14, 2021 by avibootz
edited Jan 17, 2025 by avibootz
0 votes
#include <iostream>
  
void print_array(int arr[], int size);
void bubbleSort(int arr[], int len);
   
int main(void)
{
    int arr[] = {1, 7, 0, 4, 2, 3, 5, 8, 6, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
      
    bubbleSort(arr, size);
      
    print_array(arr, size);
   
    return 0;
}
 
void bubbleSort(int arr[], int size) {
    int tmp, swap;
     
    for (int i = 0; i < size; i++) {
        swap = 0;
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
                  
                swap = 1;
            }
        }
        // If the swap is 0 we didn't swap nothing = the array is sorted - we stop the loops
        if (swap == 0) break; 
    } 
}
   
void print_array(int arr[], int size) {
    int i;
      
    for (i = 0; i < size; i++) {
         std::cout << arr[i] << " ";  
    }
} 
 
 
 
/*
run:
 
0 1 2 3 4 5 5 6 7 8 
 
*/

 



answered Jan 17, 2025 by avibootz
edited Jan 17, 2025 by avibootz
0 votes
#include <iostream>
#include <array>

void bubble_sort(std::array<int, 10>& arr) {
    int size = arr.size();
    bool swapped = true;

    while (swapped) {
        swapped = false;
        for (int i = 1; i < size; i++) {
            if (arr[i - 1] > arr[i]) {
                std::swap(arr[i - 1], arr[i]);
                swapped = true;
            }
        }
        size -= 1;
    }
}

int main() {
    std::array<int, 10> arr = {1, 7, 0, 4, 2, 3, 5, 8, 6, 5};

    bubble_sort(arr);
    
    for (const auto& num : arr) {
        std::cout << num << " ";
    }
}


 
/*
run:
 
0 1 2 3 4 5 5 6 7 8 
 
*/

 



answered Jan 17, 2025 by avibootz

Related questions

3 answers 451 views
1 answer 133 views
1 answer 94 views
1 answer 99 views
1 answer 113 views
1 answer 112 views
1 answer 157 views
...