Advertisement
apl-mhd

merge sort pain

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