You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Furkan Türkal 48b9c99e14
[test] added unit test for array-rotation
5 years ago
..
README.md update readme 7 years ago
array-rotation.go move to dictionary 7 years ago
array-rotation_test.go [test] added unit test for array-rotation 5 years ago

README.md

Array Rotation Source

What It Is

What It Is

  • Input: Write a function rotate(ar[], d, n) that rotates arr[] of size n by d elements
  • Output: 1 2 3 4 5 6 7
  • Input: Rotation of the above array by 2 will make array
  • Output: 3 4 5 6 7 1 2

METHOD 1 (Use temp array)

Input arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2, n =7

    1. Store d elements in a temp array temp[] = [1, 2]
    1. Shift rest of the arr[] arr[] = [3, 4, 5, 6, 7, 6, 7]
    1. Store back the d elements arr[] = [3, 4, 5, 6, 7, 1, 2]

Algorithm Complexity

Complexity Notation
Time Complexity O(n)
Auxiliary Space O(d)

METHOD 2 (Rotate one by one)

leftRotate(arr[], d, n)
start
  For i = 0 to i < d
    Left rotate all elements of arr[] by one
end

To rotate by one, store arr[0] in a temporary variable temp, move arr[1] to arr[0], arr[2] to arr[1] …and finally temp to arr[n-1] Let us take the same example arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2 Rotate arr[] by one 2 times We get [2, 3, 4, 5, 6, 7, 1] after first rotation and [3, 4, 5, 6, 7, 1, 2] after second rotation.

Algorithm Complexity

Complexity Notation
Time Complexity O(n*d)
Auxiliary Space O(1)