Skip to content

Commit 5f246bc

Browse files
committed
array rotation using reverse algorithm
1 parent ff02627 commit 5f246bc

File tree

1 file changed

+49
-2
lines changed

1 file changed

+49
-2
lines changed

General Programs/ArrayRotation.cpp

+49-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,50 @@
22

33
using namespace std;
44

5-
//array rotation
5+
/*array rotation
6+
1)Rotating one by one
7+
2)Reversal algorithm
8+
*/
9+
10+
11+
void reverseArr(int arr[],int start,int end)
12+
{
13+
while(start < end)
14+
{
15+
swap(arr[start++],arr[end--]);
16+
17+
}
18+
}
19+
20+
void RotateSimpleClock(int arr[],int d,int n)
21+
{
22+
reverseArr(arr,n-d,n-1);
23+
24+
reverseArr(arr,0,n-d-1);
25+
26+
reverseArr(arr,0,n-1);
27+
28+
for(int i = 0 ; i < n ; i++)
29+
{
30+
cout<<arr[i]<<" ";
31+
}
32+
}
33+
34+
35+
void RotateSimpleAntiClock(int arr[],int d,int n)
36+
{
37+
reverseArr(arr,0,d-1);
38+
39+
reverseArr(arr,d,n-1);
40+
41+
reverseArr(arr,0,n-1);
42+
43+
for(int i = 0 ; i < n ; i++)
44+
{
45+
cout<<arr[i]<<" ";
46+
}
47+
}
48+
649

750
void Rotate(int arr[],int d,int n)
851
{
@@ -73,6 +116,10 @@ int main()
73116
{
74117
int arr[] = {1,2,3,4,5,6,7};
75118
int size = sizeof(arr)/sizeof(arr[0]);
76-
RotateEffi(arr,3,size);
119+
RotateSimpleClock(arr,2,size);
120+
cout<<endl;
121+
122+
int arr1[] = {1,2,3,4,5,6,7};
123+
RotateSimpleAntiClock(arr1,2,size);
77124
return 0;
78125
}

0 commit comments

Comments
 (0)