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

Driver program to perform operations in graph

Driver program to perform operations in graph:-



package com.problems.graph;publicclassGraphDriver{publicstaticvoidmain(String[] args){ BFSGraph g=new BFSGraph(); g.addVertex('A'); g.addVertex('B'); g.addVertex('C'); g.addVertex('D'); g.addVertex('E'); g.addVertex('F'); g.addVertex('G'); g.addVertex('H'); g.addEdge(0,1); g.addEdge(1,2); g.addEdge(1,7); g.addEdge(2,3); g.addEdge(2,4); g.addEdge(7,4); g.addEdge(4,5); g.addEdge(4,6); g.bfs();}}

Shortest Path from source to Vertex :- Dijkstra Algorithm

Shortest Path from source to Vertex :- Dijkstra Algorithm:-

Dijkstra Algorithms is an algorithm use to find the shortest path from source vertex to a given vertex.



package Graph;importjava.util.HashMap;abstractpublicclassDirectedGraph{ Vertex[] vertexlist=new Vertex[10]; HashMap<Character,HashMap<Character,Integer>> edgelist=new HashMap<>(); Vertex vertex;//count of vertex and edgestaticint vertexcount=0;int edgecount=0;/* * This function takes a label and insert in the vertex list as well as edge list since it is new vertex it will add * null to its adjoining vertices */intaddVertex(char label){ vertex=new Vertex(label); vertexlist[vertexcount]=vertex; System.out.println(vertexlist[vertexcount].label); edgelist.put(vertex.label,null); vertexcount++;return vertexcount;}intaddEdge(char label,char[] labels,int[] distances){ HashMap<Character,Integer> vertexlist=new HashMap<>();for(int i=0;i<labels.length;i++){ vertexlist.put(labels[i],…