Skip to content
Programmingoneonone
Programmingoneonone
  • Engineering Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
    • 100+ C++ Programs
  • Solutions
    • HackerRank
      • Algorithms Solutions
      • C solutions
      • C++ solutions
      • Java solutions
      • Python solutions
    • Leetcode Solutions
    • HackerEarth Solutions
  • Work with US
Programmingoneonone
Programmingoneonone

HackerRank Sorting: Bubble Sort problem solution

YASH PAL, 31 July 20247 February 2026

In this HackerRank Sorting: Bubble Sort Interview preparation kit problem solution, you are given an array of integers, and you are to sort the array in ascending order using the Bubble Sort algorithm.

Function Description

Complete the function countSwaps in the editor below.

countSwaps has the following parameter(s):

  • int a[n]: an array of integers to sort

Prints

Print the three lines required, then return. No return value is expected.

HackerRank Sorting: Bubble Sort Interview preparation kit solution

HackerRank Sorting: Bubble Sort problem solution in Python.

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the countSwaps function below.
def countSwaps(a):
    swaps=0
    for i in range(len(a)):
        for j in range(len(a)-1):
            if a[j]> a[j+1]:
                a[j],a[j+1]=a[j+1],a[j]
                swaps+=1
    print("Array is sorted in " + str(swaps) + " swaps.")
    print("First Element: " + str(a[0]))
    print("Last Element: " + str(a[len(a)-1]))

if __name__ == '__main__':
    n = int(input())

    a = list(map(int, input().rstrip().split()))

    countSwaps(a)

Sorting: Bubble Sort problem solution in Java.

import static java.lang.Integer.parseInt;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.StringTokenizer;

public class Day20_Sorting {

	static int MB = 1 << 20;
	static BufferedReader BR = new BufferedReader( new InputStreamReader(System.in, StandardCharsets.US_ASCII), 20 * MB);
	
	static StringTokenizer st;
	static String lastLine;
	
	static void newLine() throws IOException {
		lastLine = BR.readLine();
		st = new StringTokenizer(lastLine);
	}
	
	public static void main(String[] args) throws IOException {
		newLine();
		int N = parseInt(st.nextToken());
		
		newLine();
		int[] A = new int[N];
		for (int i = 0; i < N; i++) {
			A[i] = parseInt(st.nextToken());
		}

		int numberOfSwapps = bubbleSort(N, A);
		int firstElement = A[0];
		int lastElement = A[N-1];
		print(numberOfSwapps, firstElement, lastElement);
	}

	private static void print(int numberOfSwapps, int firstElement, int lastElement) {
		StringBuilder sb = new StringBuilder();
		
		sb.append("Array is sorted in ").append(numberOfSwapps).append(" swaps.n");
		sb.append("First Element: ").append(firstElement).append('n');
		sb.append("Last Element: ").append(lastElement).append('n');
		
		System.out.print(sb);
	}

	private static int bubbleSort(int N, int[] A) {
		int cnt = 0;
		
		for (int i = 0; i < N; i++) {
		    // Track number of elements swapped during a single array traversal
		    int numberOfSwaps = 0;
		    
		    for (int j = 0; j < N - 1; j++) {
		        // Swap adjacent elements if they are in decreasing order
		        if (A[j] > A[j + 1]) {
		            swap(A, j , j + 1);
		            numberOfSwaps++;
		        }
		    }
		    cnt += numberOfSwaps;
		    
		    // If no elements were swapped during a traversal, array is sorted
		    if (numberOfSwaps == 0) {
		        break;
		    }
		}
		
		return cnt;
	}

	private static void swap(int[] a, int i, int j) {
		int tmp = a[i];
		a[i] = a[j];
		a[j] = tmp;
	}

}

Problem solution in C++ programming.

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>

using namespace std;


int main(){
    int n,temp,c=0;
    cin >> n;
   int a[n];
    for(int i=0;i<n;i++)
        {
        cin>>a[i];
    }
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<n-i-1;j++)
            {
            if(a[j]>a[j+1])
                {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
                c++;
            }
        }
    
    if(c==0)
        {
        break;
    }}
    cout<<"Array is sorted in "<<c<<" swaps."<<endl;
    cout<<"First Element:"<<" "<<a[0]<<endl;
    cout<<"Last Element:"<<" "<<a[n-1]<<endl;
    return 0;
}

Problem solution in C programming.

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main(){
    int n; 
    scanf("%d",&n);
    int *a = malloc(sizeof(int) * n);
    for(int a_i = 0; a_i < n; a_i++){
       scanf("%d",&a[a_i]);
    }
    
    int i,j,temp,k=0;
    for(i=0;i<n-1;i++){
        for(j=0;j<n-1-i;j++){
            if(a[j]>a[j+1]){
                temp =a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
                k++;
            }
        }
    }
    
    printf("Array is sorted in %d swaps.n",k);
printf("First Element: %dn",a[0]);
printf("Last Element: %dn",a[n-1]);
    
    
    return 0;
}

Problem solution in JavaScript programming.

process.stdin.resume();
process.stdin.setEncoding('ascii');

var input_stdin = "";
var input_stdin_array = "";
var input_currentline = 0;

process.stdin.on('data', function (data) {
    input_stdin += data;
});

process.stdin.on('end', function () {
    input_stdin_array = input_stdin.split("n");
    main();    
});

function readLine() {
    return input_stdin_array[input_currentline++];
}

/////////////// ignore above this line ////////////////////

function main() {
    var n = parseInt(readLine());
    a = readLine().split(' ');
    a = a.map(Number);
    tally = 0;
    
    for (var i = 0; i < n; i++) {

        
        for (var x = 0; x < n - 1; x++) {
            if (a[x] > a[x + 1]) {
                const temp = a[x + 1];
                a[x + 1] = a[x];
                a[x] = temp;
                tally++;
            }
        }
        
        if(tally === 0)
            break;
    }
   
    
    process.stdout.write('Array is sorted in ' + tally + ' swaps.' + 'n');
    process.stdout.write('First Element: ' + a[0] + 'n');
    process.stdout.write('Last Element: ' + a[n - 1]);
    
    

}

coding problems solutions Hackerrank Problems Solutions interview prepration kit HackerRank

Post navigation

Previous post
Next post

Programmingoneonone

We at Programmingoneonone, also known as Programming101 is a learning hub of programming and other related stuff. We provide free learning tutorials/articles related to programming and other technical stuff to people who are eager to learn about it.

Pages

  • About US
  • Contact US
  • Privacy Policy

Practice

  • Java
  • C++
  • C

Follow US

  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2026 Programmingoneonone | WordPress Theme by SuperbThemes