इटरेटिव मर्ज सॉर्ट के लिए जावा प्रोग्राम निम्नलिखित है -
उदाहरण
import java.util.Arrays; public class Demo{ public static void merge_sort(int[] my_arr){ if(my_arr == null){ return; } if(my_arr.length > 1){ int mid = my_arr.length / 2; int[] left = new int[mid]; for(int i = 0; i < mid; i++){ left[i] = my_arr[i]; } int[] right = new int[my_arr.length - mid]; for(int i = mid; i < my_arr.length; i++){ right[i - mid] = my_arr[i]; } merge_sort(left); merge_sort(right); int i = 0; int j = 0; int k = 0; while(i < left.length && j < right.length){ if(left[i] < right[j]){ my_arr[k] = left[i]; i++; } else { my_arr[k] = right[j]; j++; } k++; } while(i < left.length){ my_arr[k] = left[i]; i++; k++; } while(j < right.length){ my_arr[k] = right[j]; j++; k++; } } } public static void main(String[] args){ int my_arr[] = {56, 78, 91, 21, 34, 0, 11}; int i=0; merge_sort(my_arr); System.out.println("The array after sorting is "); for(i=0; i<my_arr.length; i++) System.out.print(my_arr[i]+" "); } }
आउटपुट
The array after sorting is 0 11 21 34 56 78 91
डेमो नामक एक वर्ग में 'मर्ज_सॉर्ट' फ़ंक्शन होता है, जो जांचता है कि सरणी खाली है या नहीं, यदि हां, तो कुछ भी नहीं लौटाता है। यदि सरणी की लंबाई एक से अधिक है, तो 'मध्य' के मान की गणना की जाती है और सरणी को 'मध्य' मान तक पुनरावृत्त किया जाता है। मूल रूप से सरणी को दो बराबर भागों में विभाजित किया जाता है और सरणी के बाईं ओर के तत्वों को एक नई सरणी में डाल दिया जाता है और सरणी के दाईं ओर के तत्वों को एक अलग सरणी में डाल दिया जाता है। अब, इन सरणियों को अलग और क्रमबद्ध किया गया है। फिर उन्हें एक साथ मिला दिया जाता है।
मुख्य फ़ंक्शन में, सरणी को परिभाषित किया जाता है और इस सरणी तत्वों पर फ़ंक्शन को कॉल किया जाता है। आउटपुट कंसोल पर प्रदर्शित होता है।