## Java program for Bubble Sort

Sorting of data can be integral part of processing the given input to produce required output. Sorting may be required to remove data objects which are far from the mean of the entire data. Currently there are many sorting techniuqes, those are used according to the size of the data and the purpose of sorting. The basic of all sorting techniques is Bubble sort.

How it works: Instead of searching entire array, it compares only the adjacent data elements. It continues it’s searching till the last of the array and after reaching end of the array, it searches for the next largest number in the array and this process continues for n times where n is the size of the array.

```import java.util.*;
import java.io.*;

public class bubble {
public static void main(String args[]){

int i,j,swap;
Scanner in = new Scanner(System.in);
System.out.println("\nEnter the size of the data to be sorted:");
int size = in.nextInt();

//Input from User
int[] data = new int[size];
for(i=0;i<size;i++){
System.out.println("\nEnter " + (i+1) +" data value:");
data[i] = in.nextInt();
}

//Request for choice
System.out.println("\n\t1.Ascending order\n\n\t2.Descending order");
int choice = in.nextInt();

if(choice == 1){
/*Ascending order*/
for(i=0;i<size;i++){
for(j=0;j<size-1;j++){
if(data[j] > data[j+1]){
swap      = data[j];
data[j]   = data[j+1];
data[j+1] = swap;
}
}
}
}

else {
/*Descending order*/
for(i=0;i<size;i++){
for(j=0;j<size-1;j++){
if(data[j] < data[j+1]){
swap      = data[j];
data[j]   = data[j+1];
data[j+1] = swap;
}
}
}
}

//Display the sorted data to user
if(choice == 1){
System.out.println("\nData in ascending order is\n");
for(i=0;i<size;i++)
System.out.print("\t" + data[i]);
}
else if(choice == 2){
System.out.println("\nData in descending order is\n");
for(i=0;i<size;i++)
System.out.print("\t" + data[i]);
}
else
System.out.print("Wrong choice");
}
}```