|
2 | 2 |
|
3 | 3 | using namespace std;
|
4 | 4 |
|
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 | + |
6 | 49 |
|
7 | 50 | void Rotate(int arr[],int d,int n)
|
8 | 51 | {
|
@@ -73,6 +116,10 @@ int main()
|
73 | 116 | {
|
74 | 117 | int arr[] = {1,2,3,4,5,6,7};
|
75 | 118 | 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); |
77 | 124 | return 0;
|
78 | 125 | }
|
0 commit comments