From e5d3b4aa27b8a112179b82d122ade6bac005ba4b Mon Sep 17 00:00:00 2001 From: Dishant Sethi <31399916+dishantsethi@users.noreply.github.com> Date: Mon, 25 Mar 2019 21:37:15 +0530 Subject: [PATCH] Array rotation (#775) Array-rotation in c,c++,java and python --- Array_Rotation/Array_Rotation.c | 36 +++++++++++++++++++++++++++++++ Array_Rotation/Array_Rotation.cpp | 34 +++++++++++++++++++++++++++++ Array_Rotation/Array_Rotation.py | 21 ++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 Array_Rotation/Array_Rotation.c create mode 100644 Array_Rotation/Array_Rotation.cpp create mode 100644 Array_Rotation/Array_Rotation.py diff --git a/Array_Rotation/Array_Rotation.c b/Array_Rotation/Array_Rotation.c new file mode 100644 index 0000000000..dce9b88076 --- /dev/null +++ b/Array_Rotation/Array_Rotation.c @@ -0,0 +1,36 @@ +//Program to rotate array Arr[] of size n by d Elements +#include + +void Rotate(int arr[], int r, int n) +{ + int temp[r]; + for (int i = 0; i < r; i++) + temp[i] = arr[i]; + + for (int i = r; i < n; i++) + arr[i-r] = arr[i]; + + for (int i = n-r; i < n; i++) + arr[i] = temp[i-(n-r)]; +} + +int main() +{ + int arr[] = { 1, 2, 3, 4, 5 }; + int r = 2; + + int n = sizeof(arr)/sizeof(arr[0]); + + Rotate(arr, r, n); + + for (int i = 0; i < n; i++) + printf("%d ", arr[i]); + + return 0; +} + +/* +Input array: {1, 2, 3, 4, 5} +Expected Output +3 4 5 1 2 +*/ diff --git a/Array_Rotation/Array_Rotation.cpp b/Array_Rotation/Array_Rotation.cpp new file mode 100644 index 0000000000..41ac84b417 --- /dev/null +++ b/Array_Rotation/Array_Rotation.cpp @@ -0,0 +1,34 @@ +//Program to rotate array Arr[] of size n by d Elements +#include +using namespace std; + +void leftRotate(int arr[], int n) +{ + int temp = arr[0], i; + for (i = 0; i < n - 1; i++) + arr[i] = arr[i + 1]; + + arr[i] = temp; +} + +void Rotate(int arr[], int d, int n) +{ + for (int i = 0; i < d; i++) + leftRotate(arr, n); + + for (int i = 0; i < n; i++) + cout << arr[i] << " "; +} + +int main() +{ + int arr[] = { 1, 2, 3, 4, 5}; + int n = sizeof(arr) / sizeof(arr[0]); + Rotate(arr, 2, n); + return 0; +} +/* +Input array: {1, 2, 3, 4, 5} +Expected Output +3 4 5 1 2 +*/ diff --git a/Array_Rotation/Array_Rotation.py b/Array_Rotation/Array_Rotation.py new file mode 100644 index 0000000000..352493701c --- /dev/null +++ b/Array_Rotation/Array_Rotation.py @@ -0,0 +1,21 @@ +//Program to rotate array Arr[] of size n by d Elements +def leftRotation(arr,n): + temp = arr[0] + for i in range(n-1): + arr[i] = arr[i+1] + arr[n-1] = temp + +def Rotate(arr,d,n): + for i in range(d): + leftRotation(arr,n) + for i in range(n): + print(arr[i],end=" ") + +arr = [1,2,3,4,5,6,7] +Rotate(arr,2,7) + +/* +Input array: {1, 2, 3, 4, 5, 6, 7 } +Expected Output +3 4 5 6 7 1 2 +*/