Skip to main content

Left Rotation in an Array using Java

Left Rotation in an Array using Java

There are two methods implemented by me here :-

1) Using extra Array 
  1.  Get new position of  a current element using formula.
  2.  Add the element in the new position in a new array.


2) Using same Array:- This is little bit complex

  1. hold variable at index i.
  2. find new index for variable.
  3. hold variable present at new index.
  4. place variable at index i to this new index.
  5. assign i to new index variable.
  6. repeat steps until count is not equal to lenght of an array which simply means all variable got covered.



package Arrays;

/*
 * 12345 to 34512
 */

/*
 * sample input
 * 5 4(d=4 that is 4 rotations)
 1 2 3 4 5
 sample output
 51234
 */
public class LeftRotation {
 
 public static void printArray(int[] arr)
 {
  
  for(int i=0;i<arr.length;i++)
  {
  System.out.print(" "+arr[i]);
  }
  System.out.println(" ");
 }
 
 //method which returns rotated array using extra array
 public static int[] leftRotate(int[] arr, int rotation)
 {
  int temparr[]=new int[arr.length];
  int pos;
  for(int i=0;i<arr.length;i++)
  {
   pos=(arr.length+(i-rotation))%arr.length;
   temparr[pos]=arr[i];
  }
  printArray(temparr);
  
  return temparr;
 }

 //method which returns rotated array using same array
 public static int[] leftRotate2(int[] arr, int rotation)
 {
  
  int pos,tempinit,temppos=arr[0],i=0,c=0;
  
  while(c!=arr.length){
   tempinit=temppos;
   pos=(arr.length+(i-rotation))%arr.length;
   temppos=arr[pos];
   arr[pos]=tempinit; 
   i=pos;
   c++;
  }
  
  printArray(arr);
  
  return arr;
 }

 
 
 public static void main(String[] args)
 {
  int[] arr={1,2,3,4,5};
  leftRotate(arr, 3);
  leftRotate2(arr, 3);
 }
}

Comments

.

Popular posts from this blog

Breadth First Search Implementation in Java

Breadth First Search Implementation in Java For Graph Class Design and DFS implementation please refer to below link:- depth-first-search-implementation-in-java /* 1. Pick a vertex. 2. Get Adjacent Vertex. 3. Insert in queue ( at tail) 4. Remove vertex from queue( head) 5. Do until no vertex left in a queue. */ void searchBFS () { //this is how we define queue using LinkedList Queue < Character > queue = new LinkedList < Character >(); queue . add ( vertexlist [ 0 ]. label ); while (! queue . isEmpty ()) { //element at head (Function in main graph class please use above link) ArrayList adjvertex = getNeighbours ( queue . peek ()); System . out . println ( queue . peek ()); //element removed at head queue . remove (); if ( adjvertex != null ) { for ( int i = 0 ; i < adjvertex . size (); i ++) { //element added at tail queue . add

Selection Sort in JAVA

What is selection sort? It is a sorting technique that is based on the partitioning of array into two parts, sorted and unsorted. The process is:- 1) Find minimum element in unsorted array. 2) Swap the element at the end of sorted array. when i=0 we don't have any sorted array so element will be replaced from first element later the sorted array end will growas the index. Steps:- underline elements are sorted array, the length is increasing with each minimum element added at the end. minimum element11 11 25 12 22 64 minimum element12 11 12 25 22 64 minimum element22 11 12 22 25 64 minimum element25 11 12 22 25 64 minimum element64 11 12 22 25 64 Program:- package sorting ; public class SelectionSort { //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 . printl