Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Susun semula tatasusunan supaya 'arr' menjadi 'i' jika 'arr' ialah 'j' dalam C++

Susun semula tatasusunan supaya 'arr' menjadi 'i' jika 'arr' ialah 'j' dalam C++

王林
王林ke hadapan
2023-09-18 10:29:05823semak imbas

Susun semula tatasusunan supaya arr menjadi i jika arr ialah j dalam C++

Kami diberi tatasusunan jenis integer positif, dengan mengandaikan ia ialah arr[], saiznya boleh diberikan sewenang-wenangnya, dan nilai elemen dalam tatasusunan hendaklah lebih besar daripada 0 tetapi kurang daripada saiz tatasusunan. Tugasnya ialah menyusun semula Tatasusunan, jika arr[j] ialah "j", maka arr[j] menjadi "i" dan hasil akhir dicetak.

Mari kita lihat pelbagai senario input dan output untuk situasi ini - h2>

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

output− 23 0 4 1: Array sebelum mengisih Susun semula tatasusunan supaya arr[j] menjadi i Jika arr[i] ialah j, ia ialah: 4 2 3 0 1

Penjelasan− Kami mendapat tatasusunan integer bersaiz 6 dan nilai-nilai dalam tatasusunan adalah kurang daripada 6 daripada semua elemen. Sekarang, kita akan menyusun semula tatasusunan, iaitu arr[1] ialah 4, arr[4] = 1; 2. arr[2] = 3; arr[4] ialah 0, arr[0]=4. Oleh itu, tatasusunan akhir ialah 4 2 3 0 1.

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

Output− Tatasusunan sebelum mengisih: 2 0 1 3 Susun semula tatasusunan supaya arr[j] menjadi i, jika arr[i] ialah j, maka: 1 2 0 3

Penjelasan− Kami mendapat tatasusunan integer bersaiz 6 dan nilai semua elemen dalam tatasusunan Kurang daripada 6. Sekarang, kita akan menyusun semula tatasusunan, iaitu arr[0] ialah 2, arr[2] = 0; 1, arr[1] = 2; arr[3] ialah 3, arr[3] = 3. Oleh itu, tatasusunan akhir ialah 1 2 0 3.

Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

  • Masukkan tatasusunan elemen jenis integer dan kira saiz tatasusunan. . saiz Tatasusunan arr[] adalah sama.

  • Mulakan gelung FOR dari i ke 0 sehingga i kurang daripada saiz. Di dalam gelung, tetapkan ptr[arr[i]] kepada i.

  • Mulakan gelung FOR dari i ke 0 sehingga i kurang daripada saiz. Di dalam gelung, tetapkan arr[i] kepada ptr[i].

    • Cetak tatasusunan semula.
    • Contoh
    • #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;
      }

      Output

    • Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut
    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

Atas ialah kandungan terperinci Susun semula tatasusunan supaya 'arr' menjadi 'i' jika 'arr' ialah 'j' dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam