Home > Backend Development > C++ > body text

Rearrange an array so that 'arr' becomes 'i' if 'arr' is 'j' in C++

王林
Release: 2023-09-18 10:29:05
forward
798 people have browsed it

Rearrange an array so that arr becomes i if arr is j in C++

We are given an array of positive integer type, assuming it is arr[], its size can be given arbitrarily, and the value of the elements in the array should be greater than 0 but less than the size of the array. The task is to rearrange An array, if arr[j] is "j", then arr[j] becomes "i" and the final result is printed.

Let’s look at various input and output scenarios for this situation - h2>

Input− int arr[] = {3, 4, 1, 2, 0}

Output− Array before sorting: 3 4 1 2 0 Rearrange the array so that arr[j] becomes i. If arr[i] is j, it is: 4 2 3 0 1

Explanation− We get an integer of size Array 6 and all elements in the array with values ​​less than 6. Now, we will rearrange the array, i.e. arr[1] is 4, arr[4] = 1; arr[2] is 1, arr[1] = 2; arr[3] is 2. arr[2] = 3; arr[4] is 0, arr[0]=4. Therefore, the final array is 4 2 3 0 1.

Input t− int arr[] = {2, 0, 1, 3}

Output− Array before arrangement: 2 0 1 3 Rearrange the array so that arr[j] becomes i, if arr[i] is j, then: 1 2 0 3

Explanation− We get an integer of size 6 array and the value of all elements in the array is less than 6. Now, we will rearrange the array, i.e. arr[0] is 2, arr[2] = 0; arr[1] is 0, arr[0] = 1; arr[2] is 1, arr[1] = 2; arr[3] is 3, arr[3] = 3. Therefore, the final array is 1 2 0 3.

The method used in the following program is as follows

  • Input an array of integer type elements and calculate the size of the array.

  • Print the array before arranging it and call the function Rearrangement(arr, size)

  • In the function Rearrangement(arr, size)

    • Create an array ptr[] of integer type values ​​with the same size as the array arr[].

    • Start looping FOR from i to 0 until i is less than size. Inside the loop, set ptr[arr[i]] to i.

    • Start looping FOR from i to 0 until i is less than size. Inside the loop, set arr[i] to ptr[i].

  • #Print the rearranged array.

Example

#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
   int ptr[size];
   for(int i = 0; i < size; i++){
      ptr[arr[i]] = i;
   }
   for(int i = 0; i < size; i++){
      arr[i] = ptr[i];
   }
}
int main(){
   //input an array
   int arr[] = {3, 4, 1, 2, 0};
   int size = sizeof(arr) / sizeof(arr[0]);
   //print the original Array
   cout<<"Array before Arrangement: ";
   for (int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
   //calling the function to rearrange the array
   Rearrangement(arr, size);
   //print the array after rearranging the values
   cout<<"\nRearrangement of an array such that &lsquo;arr[j]&rsquo; becomes &lsquo;i&rsquo; if &lsquo;arr[i]&rsquo; is &lsquo;j&rsquo; is: ";
   for(int i = 0; i < size; i++){
      cout<< arr[i] << " ";
   }
   return 0;
}
Copy after login

Output

If we run the above code it will generate the following output

Array before Arrangement: 3 4 1 2 0
Rearrangement of an array such that &lsquo;arr[j]&rsquo; becomes &lsquo;i&rsquo; if &lsquo;arr[i]&rsquo; is &lsquo;j&rsquo; is: 4 2 3 0 1
Copy after login

The above is the detailed content of Rearrange an array so that 'arr' becomes 'i' if 'arr' is 'j' in C++. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!