Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package testSpace;
- public class MergeSort {
- public static int[] merge_sort (int[] array, int p, int r) {
- if (p < r) {
- int q = (int) Math.floor((p+r)/2);
- merge_sort(array,p,q);
- merge_sort(array,q+1,r);
- Merge(array,p,q,r);
- }
- else if (p==r) {
- print("-------------------------------\n");
- print("p:" + p + " = " + "r:"+r + ": continuing\n");
- print("-------------------------------\n");
- }
- return array;
- }
- public static void Merge(int[] array, int p, int q, int r) {
- print("***********Split start**************");
- print("\n\nStarting Array: ");
- print_array(array);
- int n1 = q-p+1;
- int n2 = r-q;
- int L[] = new int [n1+1];
- int R[] = new int [n2+1];
- for(int i = 0;i < n1;i++) {
- L[i] = array[p+i];
- }
- for(int j = 0;j < n2;j++) {
- R[j] = array[q+j+1];
- }
- L[n1] = Integer.MAX_VALUE;
- R[n2] = Integer.MAX_VALUE;
- print("**********Split finish**************\n");
- int i = 0;
- int j = 0;
- int count = 0;
- for(int k = p; k<=r; k++) {
- if (L[i] <= R[j]) {
- print("L[i]<=R[j]\nExchange happening\n");
- array[k] = L[i];
- i++;
- }
- else {
- print("L[i]>R[j]\n");
- array[k] = R[j];
- j++;
- }
- count++;
- print("---------------------------------");
- print("\nIteration:" + count
- + " ~ p:" +p
- +";q:"+q
- +";r:"+r
- +";i:"+i
- +";j:"+j+"\n");
- print("---------------------------------");
- print("\nA Array: -- ");
- print_array(array);
- print("\nL Array: -- ");
- print_array(L);
- print("\nR Array: -- ");
- print_array(R);
- }
- print("**********************************\n");
- }
- public static void print(String string) {
- System.out.print(string);
- }
- public static void print_array (int[] array) {
- for (int i = 0; i < array.length; i++)
- System.out.print(array[i] + ", ");
- System.out.println("");
- }
- public static void main(String[] args) {
- int[] array = {5,2,4,7,1,3,2,6};
- int n = array.length;
- array = merge_sort(array, 0, n-1);
- print("Finish Array: ");
- print_array(array);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement