Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class MergerSort
- {
- public static void clearScreen()
- {
- System.out.print('\u000C');
- }
- public void main(String[] args) //2 arr for chack
- {
- Scanner scan = new Scanner (System.in);
- clearScreen();
- int[] a = {1,2,3,4,5};
- int[] b = {1,2,3,4,5};
- }
- public static int isPermutation (int a[], int b[])
- {
- if (mergeSort(a)==mergeSort(b))
- return 1;
- else
- return 0;
- }
- public static int isPermutation1 (int a[], int b[])
- {
- int i=0;
- while (a[i++]!=b[i++])
- {
- return 0;
- }
- return 1;
- }
- public static void mergeSort(Comparable [ ] a)
- {
- Comparable[] tmp = new Comparable[a.length];
- mergeSort(a, tmp, 0, a.length - 1);
- }
- private static void mergeSort(Comparable [ ] a, Comparable [ ] tmp, int left, int right)
- {
- if( left < right )
- {
- int center = (left + right) / 2;
- mergeSort(a, tmp, left, center);
- mergeSort(a, tmp, center + 1, right);
- merge(a, tmp, left, center + 1, right);
- }
- }
- private static void merge(Comparable[ ] a, Comparable[ ] tmp, int left, int right, int rightEnd )
- {
- int leftEnd = right - 1;
- int k = left;
- int num = rightEnd - left + 1;
- while(left <= leftEnd && right <= rightEnd)
- if(a[left].compareTo(a[right]) <= 0)
- tmp[k++] = a[left++];
- else
- tmp[k++] = a[right++];
- while(left <= leftEnd) // Copy rest of first half
- tmp[k++] = a[left++];
- while(right <= rightEnd) // Copy rest of right half
- tmp[k++] = a[right++];
- // Copy tmp back
- for(int i = 0; i < num; i++, rightEnd--)
- a[rightEnd] = tmp[rightEnd];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement