Write a program to rotate an array.

    by nikoo28

    Question: Write a program to rotate an array arr[], having a size ‘n’ by ‘d’ elements?

    Input: arr[] = { 4, 8, 15, 16, 23, 42, 99 }, d = 3
    Output: 16, 23, 42, 99, 4, 8, 15

    Let us suppose our array is in this way:

    rotate_array_1

    On rotating the array by 3 elements, it should look like:

    rotate_array_2

    To solve the above problem, we can adopt this following technique-

    • Create a function that rotates the entire array by one element at a time.
    • 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]
    • Create a function rotate(arr[], d, n) that calls the above function ‘d’ number of times.

    Here is an implementation of the above algorithm:-

    #include<stdio.h>
    
    //function to rotate the array by one element
    void leftRotatebyOne(int arr[], int n)
    {
    	int i, temp;
    	temp = arr[0];
    
    	//swap all the elements
    	for (i = 0; i < n-1; i++)
    		arr[i] = arr[i+1];
    
    	arr[i] = temp;
    }
    
    /*Function to left rotate arr[] of size n by d*/
    void leftRotate(int arr[], int d, int n)
    {
    	int i;
    
    	//call the function to rotate by 1, d number of times
    	for (i = 0; i < d; i++)
    		leftRotatebyOne(arr, n);
    }
    
    //utility function to print an array
    void printArray(int arr[], int size)
    {
    	int i;
    	for(i = 0; i < size; i++)
    		printf("%d ", arr[i]);
    }
    
    //Driver program to test above functions
    int main(void)
    {
    	int arr[] = {4, 8, 15, 16, 23, 42, 99};
    
    	leftRotate(arr, 3, 7);
    	printArray(arr, 7);
    
    	return 0;
    }
    

    Time Complexity: O(n * d)
    Space Complexity: O(1)

    Click here for method 2.

    0 comments
    0 FacebookTwitterLinkedinWhatsappEmail
  • Question:- We are given a list of n-1 integers and these integers are in the range of 1 to n. There are no duplicates in list. One of the integers is missing. Give an algorithm to find the missing integer. Input:- 1, 2, 4, 6, 3, 7, 8 Output:- 5 We solved this problem using array summation here. We can also utilize the property of XOR to solve this problem. The major property of XOR that we will be using is A XOR A = 0. Thus, the steps involved …

    0 FacebookTwitterLinkedinWhatsappEmail
  • Question:- We are given a list of n-1 integers and these integers are in the range of 1 to n. There are no duplicates in list. One of the integers is missing. Give an algorithm to find the missing integer. Input:- 1, 2, 4, 6, 3, 7, 8 Output:- 5 We solved the same problem via sorting here. Another solution to the problem is possible that has a even smaller time complexity and requires just a single scan of the array. The technique involved is:- Using the summation formula, get …

    0 FacebookTwitterLinkedinWhatsappEmail
  • Question:- We are given a list of n-1 integers and these integers are in the range of 1 to n. There are no duplicates in list. One of the integers is missing. Give an algorithm to find the missing integer. Input:- 1, 2, 4, 6, 3, 7, 8 Output:- 5 After the brute force method we can also use another method to find the missing number in an array. This technique involves sorting the array. Sort the array and give it a linear scan, if there is a difference between …

    0 FacebookTwitterLinkedinWhatsappEmail
  • Arrays

    Find the missing number in an array.

    by nikoo28
    2 minutes read

    Question:- We are given a list of n-1 integers and these integers are in the range of 1 to n. There are no duplicates in list. One of the integers is missing. Give an algorithm to find the missing integer. Input:- 1, 2, 4, 6, 3, 7, 8 Output:- 5 Brute Force Solution:- One simple solution to this is, for each number in 1 to n check whether that number is in the given array or not. Return the number that is not present. Here is the code module for …

    0 FacebookTwitterLinkedinWhatsappEmail
  • Question: Given an array of n numbers. Give an algorithm for finding the element which appears maximum number of times in the array? Input: 3, 2, 1, 2, 2, 3 Output: 2 The previous method required us to sort the array. But what if we do not want to sort the array. We can also solve this problem using 2 scans of the array. We cannot use the negation method used to check duplicates because of the number of repetitions. In the first scan, instead of negating -> add the …

    0 FacebookTwitterLinkedinWhatsappEmail
  • Question: Given an array of n numbers. Give an algorithm for finding the element which appears maximum number of times in the array? Input: 3, 2, 1, 2, 2, 3 Output: 2 This problem can be done by brute force method. Now let us try to optimize this problem further. We need to reduce the time complexity. We used 2 for loops in the brute force approach. This is not necessary. Another approach can be:- Sort the entire array. Start scanning the array from the beginning and keep counting the …

    0 FacebookTwitterLinkedinWhatsappEmail

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More