Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.89 KB | None | 0 0
  1. import java.util.Arrays;
  2.  
  3. public class Merge {
  4.  
  5.     public static void main(String[] args) {
  6.         int []vet = {5,3,1,9,7,2,4,5,8,3,0};
  7.         int []aux = new int[vet.length];
  8.        
  9.         sort(vet, aux, 0, vet.length -1);
  10.         System.out.println(Arrays.toString(vet));
  11.        
  12.     }
  13.    
  14.     private static void sort(int []vet, int []aux, int ini, int fim) {
  15.         if (ini < fim){
  16.             int meio = (ini + fim) / 2;        
  17.             sort(vet, aux, ini, meio);
  18.             sort(vet, aux, meio + 1, fim);
  19.             merge(vet, aux, ini, meio, fim);
  20.         }      
  21.     }
  22.    
  23.     private static void merge(int []vet, int []aux, int ini, int meio, int fim) {
  24.         for (int k = 0; k < aux.length; k++) {
  25.             aux[k] = vet[k];
  26.         }
  27.        
  28.         int i = ini;
  29.         int j = meio + 1;
  30.        
  31.         for (int k = ini; k <= fim; k++) {
  32.             if (i > meio) vet[k] = aux[j++];
  33.             else if (j > fim) vet[k] = aux[i++];
  34.             else if (aux[i] < aux[j]) vet[k] = aux[i++];
  35.             else vet[k] = aux[j++];
  36.         }      
  37.     }  
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement