Advertisement
Guest User

Untitled

a guest
May 31st, 2015
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.62 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class Permutation
  4. {
  5.     public static void clearScreen()
  6.     {
  7.       System.out.print('\u000C');
  8.     }
  9.  
  10.     public static int isPermutation (Integer  a[], Integer  b[])
  11.     {
  12.         mergeSort(a);
  13.         mergeSort(b);
  14.         int i=0;
  15.         while (a[i]==b[i])
  16.         {
  17.             i++;
  18.             return 1;
  19.         }
  20.         return 0;
  21.     }
  22.     public static void mergeSort(Comparable [ ] a)
  23.     {
  24.         Comparable[] tmp = new Comparable[a.length];
  25.         mergeSort(a, tmp,  0,  a.length - 1);
  26.     }
  27.     private static void mergeSort(Comparable [ ] a, Comparable [ ] tmp, int left, int right)
  28.     {
  29.         if( left < right )
  30.         {
  31.             int center = (left + right) / 2;
  32.             mergeSort(a, tmp, left, center);
  33.             mergeSort(a, tmp, center + 1, right);
  34.             merge(a, tmp, left, center + 1, right);
  35.         }
  36.     }
  37.     private static void merge(Comparable[ ] a, Comparable[ ] tmp, int left, int right, int rightEnd )
  38.     {
  39.         int leftEnd = right - 1;
  40.         int k = left;
  41.         int num = rightEnd - left + 1;
  42.  
  43.         while(left <= leftEnd && right <= rightEnd)
  44.             if(a[left].compareTo(a[right]) <= 0)
  45.                 tmp[k++] = a[left++];
  46.             else
  47.                 tmp[k++] = a[right++];
  48.  
  49.         while(left <= leftEnd)    // Copy rest of first half
  50.             tmp[k++] = a[left++];
  51.  
  52.         while(right <= rightEnd)  // Copy rest of right half
  53.             tmp[k++] = a[right++];
  54.  
  55.         // Copy tmp back
  56.         for(int i = 0; i < num; i++, rightEnd--)
  57.             a[rightEnd] = tmp[rightEnd];
  58.     }
  59.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement