Skip to main content

Bubble Sort in JAVA

What is bubble sort?

It is a sorting technique that is based on the comparison.Here we compare adjacent element, if the first element is larger than the second we swap each other. We do the same procedure again and again until array do not sort completely.

Example:-
5 1 4 2 8



 5 1 4 2 8 

here pass is nothing but iterating the loops equal to number of elements in the array but if it already sorted before then we can break the loop anddo exist
PASS1
case0 1 //check 0 and first element
 1 5 4 2 8 
case1 2 //check 1 and 2 element
 1 4 5 2 8 
case2 3
 1 4 2 5 8 
case3 4
 1 4 2 5 8 
swap istrue
PASS2 //first pass completed now do second pass
case0 1
 1 4 2 5 8 
case1 2
 1 2 4 5 8 
case2 3
 1 2 4 5 8 
case3 4
 1 2 4 5 8 
swap istrue
PASS3 // third pass

case0 1
 1 2 4 5 8 
case1 2
 1 2 4 5 8 
case2 3
 1 2 4 5 8 
case3 4
 1 2 4 5 8 
swap isfalse

since swap is false we break from the loop and do not go for fourth and fifth pass

Program:-

package sorting;

public class BubbleSort {
 
 //function to print array
 public static void print(int[] arr)
 {
  for(int i=0;i<=arr.length-1;i++)
   System.out.print(" "+arr[i]);
  System.out.println(" ");
 }
 
 //function to swap elements
 public static int[] swap(int[] arr,int i, int j)
 {
  int temp;
  temp=arr[i];
  arr[i]=arr[j];
  arr[j]=temp;
  
  return arr;
 }
 
public static void main(String[] args)
{
 int[] arr={5,1,4,2,8};
 print(arr);
 //declared to check the number of passes
 int pass=1;

 while(pass!=arr.length)
 {
  /*declared to check if there is no swap then we are 
  working on already sorted array and can break the loop */
 boolean swap=false;
 
 System.out.println("PASS"+pass);
 
 for(int i=0;i<arr.length-1;i++)
 { 
   if(arr[i]>arr[i+1])
   {
    arr=swap(arr,i,i+1);
    swap=true;
   }
   
   System.out.println("case"+i+" "+(i+1));
   
   print(arr);
  }


System.out.println("swap is"+swap);
if(swap==false)
{
 break;
}
pass++;
 }

}
 
}

Comments

.

Popular posts from this blog

Calculating size of User and Cache storage

user storage:- it can be solved using same scenario as mentioned in first article . https://tech.nazarmubeenworks.com/2019/08/basics-of-system-design-chapter-0.html Suppose there are 12 Million of users are adding every year meaning 1 Million per month. So if we consider 5 year there will be around 60 million of users. Now in terms of data we can look to our DB table and get information about it. A user will be generally having name , id , address , some forien keys . Lets assume 10 columns with each column on an average storing 4 byte of data. 10*4 = 40 bytes of data for one user. 60 * 10^6 * 40 = 2400 * 10^6 = 2.4 * 10^9 = 2.4 GB of data we need to store only user values. Also while calculating storage for the user there is also one important point we need to remember is of ids. If we are going to have 60 Million of users which means 60*10^6 users so unique id’s will be as we know below figures are almost equal

Best LeetCode Lists for Interviews

Here is a list of some of the best questions asked in interviews:-  Must do 75 https://leetcode.com/list/5hkn6wze/ Must do 60  https://leetcode.com/list/5eie1aqd/ Must do medium:-  https://leetcode.com/list/5xaelz7g/ Must do Easy:-   https://leetcode.com/list/5r7rxpr1/ Graph:-  https://leetcode.com/list/x18ervrd/  Dynamic Programming:-    https://leetcode.com/list/x14z0dxr/  FaceBook interviews:- https://leetcode.com/list/xyu98pv6/  Amazon Interviews:-  https://leetcode.com/list/5hkniyf7/  Google Interviews:- https://leetcode.com/list/xyu9xfo1/ https://github.com/nazarmubeen/TopProblems/blob/master/README.md