IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> AcWing787. 归并排序 -> 正文阅读

[数据结构与算法]AcWing787. 归并排序

import java.util.Scanner;

public class Main {

    static final int N = 100010;
    static int[] arr = new int[N];
    static int[] tmp = new int[N]; // 临时数组, 用于临时存储排好序的数据

    public static void main(String[] args) {
        // 对输入值进行初始化
        Scanner in =  new Scanner(System.in);
        int n = in.nextInt();
        for (int i = 0; i < n; i++) {
            arr[i] = in.nextInt();
        }
        // 归并排序
        mergeSort(arr, 0, n - 1);

        // 打印输出
        for (int i = 0; i < n; i++) {
            System.out.print(arr[i] + " ");
        }
    }

    // 归并排序
    public static void mergeSort(int[] q, int l, int r) {
        if (l >= r) return;
        int mid = l + r >> 1;
        // 递归对左右半边处理
        mergeSort(q, l, mid);
        mergeSort(q, mid + 1, r);
        // 排序,归并
        int i = l;
        int j = mid + 1;
        int k = 0;
        while (i <= mid && j <= r)
            if (q[i] <= q[j]) tmp[k++] = q[i++];
            else tmp[k++] = q[j++];

        while (i <= mid) tmp[k++] = q[i++];
        while (j <= r) tmp[k++] = q[j++];
        // 存回原序列中
        for (i = l, j = 0; i <= r; i++, j++) q[i] = tmp[j];
    }
}


import java.util.ArrayList;

public class quickSort2 {
    static final int N = 100010;
    static int[] tmp = new int[N]; // 临时数组, 用于临时存储排好序的数据
    public static void mergeSort(int[] q, int l, int r) {
        if (l >= r) return;
        int mid = l + r >> 1;
        // 递归对左右半边处理
        mergeSort(q, l, mid);
        mergeSort(q, mid + 1, r);
        // 排序,归并
        int i = l;
        int j = mid + 1;
        int k = 0;
        while (i <= mid && j <= r)
            if (q[i] <= q[j]) tmp[k++] = q[i++];
            else tmp[k++] = q[j++];

        while (i <= mid) tmp[k++] = q[i++];
        while (j <= r) tmp[k++] = q[j++];
        // 存回原序列中
        for (i = l, j = 0; i <= r; i++, j++) q[i] = tmp[j];
    }

    public static void main(String[] args) {
        //Scanner sc = new Scanner(System.in);
        int[] arr = new int[]{3, 17, 8, 99, 23, 56, 90, 24, 57, 66, 3, 27, 66, 89, 233, 536, 33, 147, 82, 939, 243, 569};
        int l = 0;
        int r = arr.length - 1;
        mergeSort(arr, l, r);
        for (int i : arr) {
            System.out.println(i);
        }
    }
}

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:17:10  更:2022-03-21 21:19:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:52:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码