Anche per il merge sono nella stessa barca cerco aiuto
Posto il codice(Rigorosamente fatto da me visto di la e di qua ma non capendo il perchè), avendo capito il procedimento che fa
Posto il codice
codice:
public class MergeSort 
{ 
  public static void stampaVettore(int[] v, String messaggio) 
  { 
    System.out.println(messaggio); 
    for(int i=0; i<v.length; i++) 
    { 
      System.out.println(v[i]); 
    } 
     return; 
  }  
    public static void merge(int[] a, int from, int mid, int to) 
    { 
     int n = to - from + 1; // qua non riesco a capire perchè? 
     int[] b = new int[n]; 
     int i1 = from; 
     int i2 = mid + 1; 
     int k = 0; // perchè questo k 
     while (i1 <= mid && i2 <= to) 
     { 
       if (a[i1] < a[i2]) 
       { 
         b[k] = a[i1]; 
         i1++; 
        } 
         else 
         { 
           b[k] = a[i2]; 
           i2++; 
          } 
            k++; 
        } 
          if(i2>to) 
           while (i1 <= mid) 
           { 
             b[k] = a[i1]; 
             i1++; 
             k++; 
           } 
            else 
             while (i2 <= to) 
             { 
               b[k] = a[i2]; 
               i2++;
               k++; 
              } 
                for (k = 0; k < b.length; k++) 
                  a[from + k] = b[k]; 
   } 
     public static void mergeSort(int[] a, int from, int to) 
     { 
        if (from == to) 
         return; 
        int mid = (from + to) / 2; 
        mergeSort(a, from, mid); 
        mergeSort(a, mid + 1, to); 
        merge(a, from, mid, to); 
      }  
       public static void sort(int[] a) 
       { 
         mergeSort(a, 0, a.length - 1); 
       } 
         public static void main(String[] args) 
         { 
           int[] vettore ={10, 20, 15, 37, 21, 33, 22, 1, 120, 2, 11, 119};
           stampaVettore(vettore, "array non ordinato"); 
           sort(vettore); 
           System.out.println(); 
           stampaVettore(vettore, "array ordinato"); 
           System.exit(0); 
         } 
}
Qua per esempio non riesco a capire materialmente cosa fa il metodo merge