How to split an array and add the first part to end in C#

1 Answer

0 votes
using System;
 
class Program
{
     public void print(int[] arr)  {
        int size = arr.Length;
         
        for (int i = 0; i < size; i++) {
          Console.Write(arr[i] + " ");
        }
        Console.WriteLine();
    }
    void reverse(int[] arr, int start, int end) {
        int temp = 0;
     
        for (int i = start, j = end; i <= end && j > i; i++, j--)  {
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    void split(int []arr, int split_point) {
        int size = arr.Length;
 
        if (size <= 1 && split_point < 1 && split_point >= size) {
            return;
        }
 
        // reverse first part
        reverse(arr, 0, split_point - 1);
 
        // reverse second part
        reverse(arr, split_point, size - 1);
 
        // reverse all array 
        reverse(arr, 0, size - 1);
    }
    static void Main() {
        Program obj = new Program();
 
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
     
        int split_point = 3;
 
        obj.split(arr, split_point); 
         
        obj.print(arr);
    }
}
 
 
 
/*
run:
 
4 5 6 7 8 9 0 1 2 3  
 
*/

 



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

Related questions

1 answer 240 views
1 answer 228 views
1 answer 196 views
1 answer 238 views
1 answer 215 views
...