Php Program for Reversal algorithm for right rotation of an array
Given an array, right rotate it by k elements.
After K=3 rotation
Examples:
Input: arr[] = {1, 2, 3, 4, 5,
6, 7, 8, 9, 10}
k = 3
Output: 8 9 10 1 2 3 4 5 6 7
Input: arr[] = {121, 232, 33, 43 ,5}
k = 2
Output: 43 5 121 232 33
Note : In the below solution, k is assumed to be smaller than or equal to n. We can easily modify the solutions to handle larger k values by doing k = k % n
Algorithm:
rotate(arr[], d, n)
reverseArray(arr[], 0, n-1) ;
reverse(arr[], 0, d-1);
reverse(arr[], d, n-1);
Below is the implementation of above approach:
PHP
<?php
function reverseArray(& $arr , $start , $end )
{
while ( $start < $end )
{
$temp = $arr [ $start ];
$arr [ $start ] = $arr [ $end ];
$arr [ $end ] = $temp ;
$start ++;
$end --;
}
}
function rightRotate(& $arr , $d , $n )
{
reverseArray( $arr , 0, $n - 1);
reverseArray( $arr , 0, $d - 1);
reverseArray( $arr , $d , $n - 1);
}
function printArray(& $arr , $size )
{
for ( $i = 0; $i < $size ; $i ++)
echo $arr [ $i ] . " " ;
}
$arr = array (1, 2, 3, 4, 5,
6, 7, 8, 9, 10);
$n = sizeof( $arr );
$k = 3;
rightRotate( $arr , $k , $n );
printArray( $arr , $n );
?>
|
Output:
8 9 10 1 2 3 4 5 6 7
Time Complexity: O(N)
Auxiliary Space: O(1)
Please refer complete article on Reversal algorithm for right rotation of an array for more details!
Last Updated :
30 Mar, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...