# Algorithm and Flowchart to find the inverse of an array

[2856 views]

An array is a data structure that contains elements of the same data type. These elements are stored in contiguous locations in the memory. We can access the elements of an array through the index of the element. For example if we want to access the fifth element of an array, we can write: arr[4]. Here the index the required variable in the array ‘arr’ is 4.

Note: The index of an array always starts with 0.

To find the inverse of an array, we swap the array elements with the corresponding indices. For example, if 4 is present at index 1 in the input array, in the inverse array, 1 will be present at index 4. The only constraint on the input values of the array is that the array elements should be in the range between 0 to n without repetition, where ‘n’ is the size of the array. This is the most important constraint while finding out the inverse because there should not be two different values for one index and also, we cannot leave one or more indexes null.

Let us consider an example for better understanding:
Input array: arr[] = { 4, 2, 0, 1, 3}
Inverse array: inverse[] = { 2, 3, 1, 4, 0 }

## Algorithm:

Step 1: Start Step 2: Read the size of the array from the user, say ‘n’ Step 3: Declare an array of size n, say a[n] Step 4: Declare another array of size n to store the inverse, say inv[n] Step 5: Initialize loop variable, i = 0 Step 6: Repeat while i < n: 6.1: Read the array element at position ‘i’ 6.2: Increment i by 1 Step 7: Initialize loop variable, i = 0 Step 8: Repeat while i < n: 8.1: value = arr[i] 8.2: inv[value] = i 8.3: Increment i by 1 Step 9: Display the inv array Step 10: Stop

## Explanation:

We start the algorithm by taking the size of the array as input from the user and store it in a variable, say ‘n’. We declare two arrays of size ‘n’. One, to store the array given as input: arr[ ] and another to store the inverse of the arr[ ] array: inv[ ]. Then, we start a loop that will run ‘n’ times and take each element of the array as input one by one. Once this loop completes its execution, we have the array arr[ ] that needs to be inverted.

Now, we start another loop that will run ‘n’ number of times. The loop variable ‘i’ is initialized as 0 and is incremented after each iteration. We find out the value present at ith index of the array and store it in the variable ‘value’ with the help of the statement: value = arr[i]. This value represents an index for the inverse array where ‘i’ needs to be stored as data. We store the value i at the position ‘value’ of array inverse (inv). This process is repeated for all the elements of the array. Once the loop completes its execution, we have the inverse of the array in inv[ ]. The inv array is displayed.