java实现归并排序

简介: java实现归并排序

public class MergeSort {
public static void mergeSort(int[] array) {
if (array.length <= 1) {
return;
}

    int mid = array.length / 2;

    // 分割原始数组为两个子数组
    int[] leftArray = new int[mid];
    int[] rightArray = new int[array.length - mid];
    System.arraycopy(array, 0, leftArray, 0, mid);
    System.arraycopy(array, mid, rightArray, 0, array.length - mid);

    // 递归对子数组进行归并排序
    mergeSort(leftArray);
    mergeSort(rightArray);

    // 合并两个有序子数组
    merge(leftArray, rightArray, array);
}

private static void merge(int[] leftArray, int[] rightArray, int[] mergedArray) {
    int leftLength = leftArray.length;
    int rightLength = rightArray.length;
    int i = 0, j = 0, k = 0;

    while (i < leftLength && j < rightLength) {
        if (leftArray[i] <= rightArray[j]) {
            mergedArray[k++] = leftArray[i++];
        } else {
            mergedArray[k++] = rightArray[j++];
        }
    }

    while (i < leftLength) {
        mergedArray[k++] = leftArray[i++];
    }

    while (j < rightLength) {
        mergedArray[k++] = rightArray[j++];
    }
}

public static void main(String[] args) {
    int[] array = {9, 5, 7, 1, 3, 6, 2, 8, 4};
    System.out.println("原始数组:");
    printArray(array);

    mergeSort(array);

    System.out.println("排序后数组:");
    printArray(array);
}

private static void printArray(int[] array) {
    for (int i : array) {
        System.out.print(i + " ");
    }
    System.out.println();
}

}

目录
相关文章
|
23天前
|
存储 搜索推荐 算法
Java代码归并排序
Java代码归并排序
16 0
|
11天前
|
算法 Java
<八大排序>万字详解(Java实现).插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序...
<八大排序>万字详解(Java实现).插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序
9 0
|
23天前
|
机器学习/深度学习 算法 搜索推荐
数据结构与算法(Java篇)笔记--归并排序
数据结构与算法(Java篇)笔记--归并排序
|
10月前
|
算法 Java
java实现归并排序
java实现归并排序
43 0
|
23天前
|
Java
使用Java实现合并两个数组[归并排序]
使用Java实现合并两个数组[归并排序]
|
23天前
|
搜索推荐 算法 Java
java排序算法:快速排序、归并排序、堆排序等
排序算法:快速排序、归并排序、堆排序等
67 0
|
8月前
|
存储 搜索推荐 Java
深入了解归并排序:原理、性能分析与 Java 实现
归并排序(Merge Sort)是一种高效且稳定的排序算法,其优雅的分治策略使它成为排序领域的一颗明珠。它的核心思想是将一个未排序的数组分割成两个子数组,然后递归地对子数组进行排序,最后将这些排好序的子数组合并起来。
117 1
深入了解归并排序:原理、性能分析与 Java 实现
|
11月前
|
搜索推荐 算法 Java
【算法】归并排序的原理与Java实现
归并排序(Merge Sort)是一种经典的排序算法,基于分治(Divide and Conquer)策略。它将待排序的数组划分为多个子数组,然后分别对子数组进行排序,最后将排序好的子数组合并成一个有序的数组。归并排序的核心思想是将问题分解为更小的子问题,解决子问题后再将结果合并得到最终的解决方案。
95 0
|
算法 Java
归并排序+java基础数组。、
归并排序+java基础数组。、
59 0
归并排序+java基础数组。、
|
Java
Java实现归并排序
Java实现归并排序
98 0
Java实现归并排序