Program untuk Merge Sort dalam Java ialah salah satu algoritma yang paling banyak digunakan dan cekap. Isih gabung adalah berdasarkan teknik bahagi dan takluk yang melibatkan pembahagian masalah yang diberikan kepada berbilang submasalah dan menyelesaikan setiap submasalah secara bebas. Apabila submasalah diselesaikan, kami menggabungkan keputusan mereka untuk mendapatkan penyelesaian akhir kepada masalah tersebut. Algoritma isihan gabungan boleh dilaksanakan menggunakan rekursi kerana ia melibatkan penyelesaian submasalah dan bukannya masalah utama.
Mari kita pertimbangkan tatasusunan yang tidak diisih yang perlu diisih menggunakan algoritma isihan cantum. Berikut ialah langkah-langkah yang terlibat dalam mengisih tatasusunan dengan nilai: 18, 8, 4, 13, 10, 12, 7 dan 11:
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Berikut ialah contoh kod yang menunjukkan pelaksanaan pengisihan gabungan dalam java:
Kod:
package com.edubca.sorting; public class MergeSort { private int[] array; private int[] tempMergedArr; private int length; public static void main(String a[]){ int[] inputArr = {18, 8, 4, 13, 10, 12, 7, 11}; MergeSort mergeSort = new MergeSort(); mergeSort.sort(inputArr); for(int i:inputArr){ System.out.print(i + " "); } } public void sort(int inputArr[]) { this.array = inputArr; this.length = inputArr.length; this.tempMergedArr = new int[length]; performMergeSort(0, length - 1); } private void performMergeSort(int lowerIndex, int higherIndex) { if (lowerIndex < higherIndex) { int middle = lowerIndex + (higherIndex - lowerIndex) / 2; // Sort the left side of the array call performMergeSort recursively performMergeSort(lowerIndex, middle); // Sort the right side of the array call performMergeSort recursively performMergeSort(middle + 1, higherIndex); // Merge subparts using a temporary array mergeData(lowerIndex, middle, higherIndex); } } private void mergeData (int lowerIndex, int middle, int higherIndex) { for (int i = lowerIndex; i <= higherIndex; i++) { tempMergedArr[i] = array[i]; } int i = lowerIndex; int j = middle + 1; int k = lowerIndex; while (i <= middle && j <= higherIndex) { if (tempMergedArr[i] <= tempMergedArr[j]) { array[k] = tempMergedArr[i]; i++; } else { array[k] = tempMergedArr[j]; j++; } k++; } while (i <= middle) { array[k] = tempMergedArr[i]; k++; i++; } } }
Kod di atas akan menghasilkan tatasusunan yang diisih sebagai output.
Output:
Isih gabungan boleh digunakan dalam senario berikut:
Kerumitan analisis di bawah mata bagi jenis cantuman:
Di bawah mata bandingkan isihan cantuman dengan algoritma lain:
Artikel tersebut menyimpulkan bahawa isihan gabungan ialah konsep penting untuk difahami apabila ia berkaitan dengan algoritma.
Atas ialah kandungan terperinci Program untuk Merge Sort dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!