ต่อไปนี้เป็นโปรแกรม Java สำหรับ Iterative Merge Sort -
ตัวอย่าง
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
คลาสชื่อ Demo มีฟังก์ชัน 'merge_sort' ซึ่งจะตรวจสอบว่าอาร์เรย์ว่างเปล่าหรือไม่ ถ้าใช่ จะไม่ส่งคืนสิ่งใด หากความยาวของอาร์เรย์มากกว่าหนึ่งค่า ค่าของ 'mid' จะถูกคำนวณและอาร์เรย์จะวนซ้ำมากกว่าค่า 'mid' โดยทั่วไปอาร์เรย์จะถูกแบ่งออกเป็นสองส่วนเท่า ๆ กันและองค์ประกอบทางด้านซ้ายของอาร์เรย์จะถูกใส่ลงในอาร์เรย์ใหม่และองค์ประกอบทางด้านขวาของอาร์เรย์จะถูกใส่ลงในอาร์เรย์ที่ต่างกัน ตอนนี้อาร์เรย์เหล่านี้จะถูกแยกและจัดเรียง แล้วนำมารวมกัน
ในฟังก์ชันหลัก อาร์เรย์ถูกกำหนดและเรียกใช้ฟังก์ชันบนองค์ประกอบอาร์เรย์นี้ เอาต์พุตจะแสดงบนคอนโซล