Dada una array arr[] de tamaño N , la tarea es rotar la array una posición d a la izquierda.
Ejemplos:
Entrada: arr[] = {1, 2, 3, 4, 5, 6, 7}, d = 2
Salida: 3, 4, 5, 6, 7, 1, 2
Explicación: si la array se gira 1 posición a la izquierda,
se convierte en {2, 3, 4, 5, 6, 7, 1}.
Cuando se gira más 1 posición,
se convierte en: {3, 4, 5, 6, 7, 1, 2}Entrada: arr[] = {1, 6, 7, 8}, d = 3
Salida: 8, 1, 6, 7
C++
// C++ program for reversal algorithm // of array rotation #include <bits/stdc++.h> using namespace std; // Function to reverse arr[] // from index start to end void reverseArray(int arr[], int start, int end) { while (start < end) { int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } // Function to left rotate arr[] of size n by d void leftRotate(int arr[], int d, int n) { if (d == 0) return; // In case the rotating factor is // greater than array length d = d % n; reverseArray(arr, 0, d - 1); reverseArray(arr, d, n - 1); reverseArray(arr, 0, n - 1); } // Function to print an array void printArray(int arr[], int size) { for (int i = 0; i < size; i++) cout << arr[i] << " "; } // Driver code int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7 }; int N = sizeof(arr) / sizeof(arr[0]); int d = 2; // Function call leftRotate(arr, d, N); printArray(arr, N); return 0; }
C
// C/C++ program for reversal algorithm of array rotation #include <stdio.h> /*Utility function to print an array */ void printArray(int arr[], int size); /* Utility function to reverse arr[] from start to end */ void reverseArray(int arr[], int start, int end); /* Function to left rotate arr[] of size n by d */ void leftRotate(int arr[], int d, int n) { if (d == 0) return; // in case the rotating factor is // greater than array length d = d % n; reverseArray(arr, 0, d - 1); reverseArray(arr, d, n - 1); reverseArray(arr, 0, n - 1); } /*UTILITY FUNCTIONS*/ /* function to print an array */ void printArray(int arr[], int size) { int i; for (i = 0; i < size; i++) printf("%d ", arr[i]); } /*Function to reverse arr[] from index start to end*/ void reverseArray(int arr[], int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Driver program to test above functions */ int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7 }; int n = sizeof(arr) / sizeof(arr[0]); int d = 2; leftRotate(arr, d, n); printArray(arr, n); return 0; }
Java
// Java program for reversal algorithm of array rotation import java.io.*; class LeftRotate { /* Function to left rotate arr[] of size n by d */ static void leftRotate(int arr[], int d) { if (d == 0) return; int n = arr.length; // in case the rotating factor is // greater than array length d = d % n; reverseArray(arr, 0, d - 1); reverseArray(arr, d, n - 1); reverseArray(arr, 0, n - 1); } /*Function to reverse arr[] from index start to end*/ static void reverseArray(int arr[], int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /*UTILITY FUNCTIONS*/ /* function to print an array */ static void printArray(int arr[]) { for (int i = 0; i < arr.length; i++) System.out.print(arr[i] + " "); } /* Driver program to test above functions */ public static void main(String[] args) { int arr[] = { 1, 2, 3, 4, 5, 6, 7 }; int n = arr.length; int d = 2; leftRotate(arr, d); // Rotate array by d printArray(arr); } } /*This code is contributed by Devesh Agrawal*/
Python3
# Python program for reversal algorithm of array rotation # Function to reverse arr[] from index start to end def reverseArray(arr, start, end): while (start < end): temp = arr[start] arr[start] = arr[end] arr[end] = temp start += 1 end = end-1 # Function to left rotate arr[] of size n by d def leftRotate(arr, d): if d == 0: return n = len(arr) # in case the rotating factor is # greater than array length d = d % n reverseArray(arr, 0, d-1) reverseArray(arr, d, n-1) reverseArray(arr, 0, n-1) # Function to print an array def printArray(arr): for i in range(0, len(arr)): print (arr[i],end=' ') # Driver function to test above functions arr = [1, 2, 3, 4, 5, 6, 7] n = len(arr) d = 2 leftRotate(arr, d) # Rotate array by 2 printArray(arr) # This code is contributed by Devesh Agrawal
C#
// C# program for reversal algorithm // of array rotation using System; class GFG { /* Function to left rotate arr[] of size n by d */ static void leftRotate(int[] arr, int d) { if (d == 0) return; int n = arr.Length; // in case the rotating factor is // greater than array length d = d % n; reverseArray(arr, 0, d - 1); reverseArray(arr, d, n - 1); reverseArray(arr, 0, n - 1); } /* Function to reverse arr[] from index start to end*/ static void reverseArray(int[] arr, int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /*UTILITY FUNCTIONS*/ /* function to print an array */ static void printArray(int[] arr) { for (int i = 0; i < arr.Length; i++) Console.Write(arr[i] + " "); } // Driver code public static void Main() { int[] arr = { 1, 2, 3, 4, 5, 6, 7 }; int n = arr.Length; int d = 2; leftRotate(arr, d); // Rotate array by 2 printArray(arr); } } // This code is contributed by Sam007
PHP
<?php // PHP program for reversal // algorithm of array rotation /* Function to left rotate arr of size n by d */ function leftRotate(&$arr, $d, $n) { if ($d == 0) return; // in case the rotating factor is // greater than array length $d = ($d % $n); reverseArray($arr, 0, $d - 1); reverseArray($arr, $d, $n - 1); reverseArray($arr, 0, $n - 1); } /*Function to reverse $arr from index start to end*/ function reverseArray(&$arr, $start, $end) { while ($start < $end) { $temp = $arr[$start]; $arr[$start] = $arr[$end]; $arr[$end] = $temp; $start++; $end--; } } // Function to // print an array function printArray($arr, $size) { for ($i = 0; $i < $size; $i++) print $arr[$i]." "; } // Driver code $arr = array(1, 2, 3, 4, 5, 6, 7); $n = sizeof($arr); $d = 2; // Function calling leftRotate($arr, $d, $n); printArray($arr, $n); // This code is contributed // by ChitraNayal ?>
Javascript
<script> // JavaScript program for reversal algorithm // of array rotation /*Function to reverse arr[] from index start to end*/ function reverseArray(arr, start, end) { while (start < end) { var temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Function to left rotate arr[] of size n by d */ function leftRotate(arr, d, n) { if (d == 0) return; // in case the rotating factor is // greater than array length d = d % n; reverseArray(arr, 0, d - 1); reverseArray(arr, d, n - 1); reverseArray(arr, 0, n - 1); } // Function to print an array function printArray(arr, size) { for (var i = 0; i < size; i++) document.write(arr[i] + " "); } /* Driver program to test above functions */ var arr = [1, 2, 3, 4, 5, 6, 7]; var n = arr.length; var d = 2; // Function calling leftRotate(arr, d, n); printArray(arr, n); // This code is contributed by rdtank. </script>
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA