How to reorder an array according to given indexes in C#

1 Answer

0 votes
using System;
 
class Program
{
    static void print(int[] arr) {
        int size = arr.Length;
         
        for (int i = 0; i < size; i++) {
            Console.Write(arr[i] + " ");
        }
        Console.WriteLine();
    }
    static void reorder(int[] arr, int[] indexes, int i) {
        int size = arr.Length;
         
        if (i < size) {
            int data = arr[i];
            reorder(arr, indexes, i + 1);
            arr[indexes[i]] = data;
        }
    }
    static void Main() {
        int[] arr = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10};
        int[] indexes = {1, 0, 4, 3, 2, 5, 9, 7, 8, 6};
 
        print(arr);
        print(indexes);
         
        reorder(arr, indexes, 0);
         
        print(arr);
    }
}
 
 
 
/*
run:
      
1 2 3 4 5 6 7 8 9 10 
1 0 4 3 2 5 9 7 8 6 
2 1 5 4 3 6 10 8 9 7 
      
*/

 



answered Nov 28, 2021 by avibootz
edited Nov 29, 2021 by avibootz

Related questions

1 answer 272 views
1 answer 198 views
1 answer 209 views
1 answer 214 views
1 answer 257 views
1 answer 266 views
1 answer 206 views
...