📜  用于合并排序的Java程序

📅  最后修改于: 2022-05-13 01:58:09.459000             🧑  作者: Mango

用于合并排序的Java程序

合并排序是一种分而治之的算法。它将输入数组分成两半,为两半调用自身,然后合并两半。 merge()函数用于合并两半。 merge(arr, l, m, r) 是关键过程,假设 arr[l..m] 和 arr[m+1..r] 已排序并将两个排序的子数组合并为一个。

Java
/* Java program for Merge Sort */
class MergeSort
{
    // Merges two subarrays of arr[].
    // First subarray is arr[l..m]
    // Second subarray is arr[m+1..r]
    void merge(int arr[], int l, int m, int r)
    {
        // Find sizes of two subarrays to be merged
        int n1 = m - l + 1;
        int n2 = r - m;
 
        /* Create temp arrays */
        int L[] = new int [n1];
        int R[] = new int [n2];
 
        /*Copy data to temp arrays*/
        for (int i=0; i


请参阅有关合并排序的完整文章以获取更多详细信息!