Java Program for Iterative Merge Sort

Following is a typical recursive implementation of Merge Sort that uses last element as pivot.
Java
// Recursive Java Program for merge sort import java.util.Arrays; public class GFG { public static void mergeSort(int[] array) { if(array == null) { return; } if(array.length > 1) { int mid = array.length / 2; // Split left part int[] left = new int[mid]; for(int i = 0; i < mid; i++) { left[i] = array[i]; } // Split right part int[] right = new int[array.length - mid]; for(int i = mid; i < array.length; i++) { right[i - mid] = array[i]; } mergeSort(left); mergeSort(right); int i = 0; int j = 0; int k = 0; // Merge left and right arrays while(i < left.length && j < right.length) { if(left[i] < right[j]) { array[k] = left[i]; i++; } else { array[k] = right[j]; j++; } k++; } // Collect remaining elements while(i < left.length) { array[k] = left[i]; i++; k++; } while(j < right.length) { array[k] = right[j]; j++; k++; } } } // Driver program to test above functions. public static void main(String[] args) { int arr[] = {12, 11, 13, 5, 6, 7}; int i=0; System.out.println("Given array is"); for(i=0; i<arr.length; i++) System.out.print(arr[i]+" "); mergeSort(arr); System.out.println("\n"); System.out.println("Sorted array is"); for(i=0; i<arr.length; i++) System.out.print(arr[i]+" "); } } // Code Contributed by Mohit Gupta_OMG |
Time Complexity: O(n*log(n))
Auxiliary Space: O(n)
Please refer complete article on Iterative Merge Sort for more details!
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



