Sort 0,1,2 array , Dutch flag algorithm,Sort color in java.

 Method 1->

import java.util.Scanner;

public class Main

{

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("enter size=");

int n=sc.nextInt();

int[] arr=new int[n];

System.out.println("enter elements only 0,1,2=");

for(int i=0; i<n; i++){

      arr[i]=sc.nextInt();

}

System.out.println("\narray is=");

for(int ele:arr){

   System.out.print(ele+" ");   

}

int noOfZeros=0,noOfOnes=0;

for(int i=0; i<n; i++){

      if(arr[i]==0)

      noOfZeros++;

      if(arr[i]==1)

      noOfOnes++;

}

for(int j=0; j<n; j++){

      if(j<noOfZeros)

      arr[j]=0;

      else if(j<noOfZeros+noOfOnes)

      arr[j]=1;

      else

      arr[j]=2;

}

System.out.println("\nsorted array is=");

for(int ele:arr){

   System.out.print(ele+" ");   

}

}

}

output->

enter size=

5

enter elements only 0,1,2=

0

2

1

2

0


array is=

0 2 1 2 0 

sorted array is=

0 0 1 2 2 

 Method 2->

class Solution {
    public void swap(int[] arr,int a ,int b){
        int t=arr[a];
        arr[a]=arr[b];
        arr[b]=t;
    }
    public void sortColors(int[] arr) {
    int n=arr.length;
    int mid=0,low=0,high=n-1;
    while(mid<=high){
        if(arr[mid]==0){
            swap(arr,mid,low);
            low++;
            mid++;
        }
        else if(arr[mid]==1)
        mid++;
        else{
            swap(arr,mid,high);
            high--;
        }
    }
    }
}

Comments

Popular posts from this blog

Introduction of java Programming language.

Stack data structure.