# Bubble sort program in C++

In this post, you will learn how to write a **bubble sort** program using the **C++** programming language.

**Bubble sort** is a very simple sorting technique, in this each element is compared with every other element in the list. This is also called sinking sort. It continuously compares the element with the adjacent item and swaps it if the element is in wrong order. If the element at the lower index is greater than the element at the higher index, then the two elements are interchanged as the element is placed before the bigger one.

This process is continue working till the largest element moves to the highest index position.

## Bubble Sort Example

Suppose we have the following array-

`A[] = {10, 43, 23, 56, 16}`

These are the bubble sorting techniques.

### Pass 1

Compare **A[0]** and **A[1]**, since **A[0] < A[1]** then no interchange.

Compare **A[1]** and **A[2]**, since **A[1] > A[2]** then interchange.

Compare **A[2]** and **A[3]**, since **A[2] < A[3]** then no interchange.

Compare **A[3]** and **A[4]**, since **A[3] > A[4]** then interchange.

### Pass 2

Compare **A[0]** and **A[1]**, since **A[0] < A[1]** then no interchange.

Compare **A[1]** and **A[2]**, since **A[1] < A[2]** then no interchange.

Compare **A[2]** and **A[3]**, since **A[2] > A[3]** then interchange.

Compare **A[3]** and **A[4]**, since **A[3] < A[4]** then no interchange.

## Bubble Sorting Algorithm

```
STEP 1: Repeat Step 2 For 1=0 to N-1
STEP 2: Repeat for J = 0 to N - I
STEP 3: IF A[J] > A[J+1]
SWAP A[J] and A[J+1]
[END of INNER LOOP]
[END of OUTER LOOP]
STEP 4: EXIT
```

## Complexity of Bubble sort

Suppose **n** is the number of element in an array.

```
f(n) = (n-1)+(n-2)+(n-3)+.....+3+2+1
f(n) = n(n-1)/2
f(n) = n2/2 + O(n)
= O(n2)
```

## Bubble sort program in C++ using for loop

```
#include<iostream>
using namespace std;
int main ()
{
int i, j,temp,pass=0;
int arr[7] = {89,34,78,31,94,19,92};
cout <<"The value of elements: \n";
for(i = 0; i<7; i++) {
cout <<arr[i]<<"\t";
}
cout<<endl;
for(i = 0; i<7; i++) {
for(j = i+1; j<7; j++)
{
if(arr[j] < arr[i]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
pass++;
}
cout <<"Sorted Array in Ascending Order: \n";
for(i = 0; i<7; i++) {
cout <<arr[i]<<"\t";
}
cout<<"\nNo. of passes taken to sort the array:"<<pass<<endl;
return 0;
}
```

**Output of the above code:**

```
The value of elements:
89 34 78 31 94 19 92
Sorted Array in Ascending Order:
19 31 34 78 89 92 94
No. of passes taken to sort the array:7
```

## Bubble sort program in C++ using function

```
#include<iostream>
using namespace std;
void bubbleSortFunc(int []);
int main()
{
int x, arr[5];
cout<<"Enter 5 Elements: ";
for(x=0; x<5; x++)
cin>>arr[x];
bubbleSortFunc(arr);
cout<<"\nSorted Array in Ascending Order: \n";
for(x=0; x<5; x++)
cout<<arr[x]<<" ";
cout<<endl;
return 0;
}
void bubbleSortFunc(int arr[])
{
int i, j, temp;
for(i=0; i<4; i++)
{
for(j=0; j<(5-i-1); j++)
{
if(arr[j]>arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```

**Output of the above code:**

```
Enter 5 Elements: 78 38 92 74 48
Sorted Array in Ascending Order:
38 48 74 78 92
```

### Related Articles

**Queue implementation in c++**

Queue using linked list c++

Swapping of two numbers in C++

Generate random numbers in C++

C program to convert celsius to fahrenheit

Fibonacci series program in C using recursion

Write a program to find area of circle in C

C program to find greatest of three numbers

C program for addition of two numbers

C program to calculate compound interest

C program to find the ASCII value of a character

C program to convert Decimal to Octal

C program to convert decimal to binary

Write a C program to calculate Simple Interest

C program to check whether a number is even or odd

C program to reverse a number

C program to check palindrome number

C program to check whether an alphabet is a vowel or consonant

Program to find square root of a number in C

C program to check whether a number is positive or negative

Queue using linked list c++

Swapping of two numbers in C++

Generate random numbers in C++

C program to convert celsius to fahrenheit

Fibonacci series program in C using recursion

Write a program to find area of circle in C

C program to find greatest of three numbers

C program for addition of two numbers

C program to calculate compound interest

C program to find the ASCII value of a character

C program to convert Decimal to Octal

C program to convert decimal to binary

Write a C program to calculate Simple Interest

C program to check whether a number is even or odd

C program to reverse a number

C program to check palindrome number

C program to check whether an alphabet is a vowel or consonant

Program to find square root of a number in C

C program to check whether a number is positive or negative