归并排序

Posted Tianyiya H.T.W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归并排序相关的知识,希望对你有一定的参考价值。

import java.util.Scanner;

public class Main {

    public static void sort(int [] arr,int left,int right) {
        if (left >= right) {
            return;
        }

        int m = (left + right) >>> 1;

        sort(arr, left, m);
        sort(arr, m + 1, right);

        int[] tmp = new int[right - left + 1];

        int i = left, j = m + 1, index = 0;

        while (i <= m && j <= right) {

            if (arr[i] <= arr[j]) {
                tmp[index ++] = arr[i ++];
            } else {
                tmp[index ++] = arr[j ++];
            }
        }

        while (i <= m) {
            tmp[index ++] = arr[i ++];
        }

        while (j <= right) {
            tmp[index ++] = arr[j ++];
        }

        for (int k = left; k <= right; ++ k) {
            arr[k] = tmp[k - left];
        }
    }

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        while (in.hasNext()) {

            int n = in.nextInt();

            int[] arr = new int[n];

            for (int i = 0; i < n; ++ i) {
                arr[i] = in.nextInt();
            }

            sort(arr, 0, n - 1);

            System.out.print(arr[0]);

            for (int i = 1; i < n; ++ i) {
                System.out.print(" " + arr[i]);
            }

            System.out.println();
        }
    }
}

 

心之所向,素履以往 生如逆旅,一苇以航

❤️数据结构入门❤️(4 - 4)- 归并排序

一、归并排序的定义

二、归并排序的图解

三、归并排序的实现

1、归并排序的插入

2、归并排序的删除

3、归并排序的修改

4、归并排序的查找

四、归并排序的刷题实战


🧡 本文内容更新档期,预计 2021年08月中旬,敬请期待!
🧡 若订阅了该专栏,该数据结构相关的问题,也可以提前咨询作者。
🧡 VIP求助通道微信:18368041307


以上是关于归并排序的主要内容,如果未能解决你的问题,请参考以下文章

python代码实现归并排序(Merge Sort )

排序之外部排序

Python代码实现归并排序

Python代码实现归并排序

算法排序02——归并排序介绍及其在分治算法思想上与快排的区别(含归并代码)

排序算法之归并排序