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
Program:-
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
Post a Comment