Advertisement
apl-mhd

divide and conqure array reverse

Mar 14th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. package com.company;
  2.  
  3. public class Main {
  4. //it's work only for array size 2^n
  5.  
  6.  
  7.   static   void combine(int A[], int start, int end, int mid){
  8.  
  9.         //<<start<<" sdsss "<< mid<<end<<endl;
  10.  
  11.       System.out.println(start+" "+end + " "+mid);
  12.  
  13.  
  14.         int n1 = mid+1- start;
  15.         int n2 = end - mid;
  16.  
  17.         int arr1[] = new int[n1];
  18.         int arr2[] = new int[n2];
  19.  
  20.         for(int i=0; i<n1; i++){
  21.  
  22.             arr1[i] = A[start+i];
  23.  
  24.         }
  25.  
  26.  
  27.         for(int i=0; i<n2; i++){
  28.  
  29.             arr2[i] = A[mid+1+i];
  30.  
  31.         }
  32.  
  33.         for(int i=0; i<n2; i++){
  34.  
  35.             A[i+start] = arr2[i];
  36.  
  37.         }
  38.  
  39.         for(int i=0; i<n1; i++){
  40.  
  41.             A[i+mid+1] = arr1[i];
  42.  
  43.         }
  44.  
  45.  
  46.  
  47.  
  48.     }
  49.  
  50.  
  51.    static void revers(int A[], int start, int end){
  52.  
  53.        int mid = (start +end)/2;
  54.         if(start < end) {
  55.  
  56.             revers(A, start, mid);
  57.             revers(A, mid + 1, end);
  58.  
  59.             combine(A, start, end, mid);
  60.  
  61.  
  62.         }
  63.  
  64.     }
  65.  
  66.  
  67.  
  68.  
  69.     public static void main(String[] args) {
  70.     // write your code here
  71.  
  72.         int a[] = {1,2,3,4};
  73.  
  74.         revers(a, 0, 3);
  75.  
  76.         System.out.println(a[0]+" "+a[1]+" "+a[2]+" "+a[3]);
  77.  
  78.  
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement