java归并排序
时间:2022-05-03
本文章向大家介绍java归并排序,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package datastruct;
/**
* Created by Zephery on 2017/3/3.
*/
public class Solution {
public static void printArray(int[] arr, int i, int j) {
System.out.print("[");
for (int k = i; k < j; k++) {
System.out.print(arr[k] + ",");
}
System.out.print(arr[j] + "]");
}
private static void mergesort(int[] arr, int i, int j) {
int mid = 0;
if (i < j) {
mid = (i + j) / 2;
mergesort(arr, i, mid);
mergesort(arr, mid + 1, j);
merge(arr, i, mid, j);
}
}
private static void merge(int[] arr, int i, int mid, int j) {
System.out.print("Left:");
printArray(arr, i, mid);
System.out.println("Right:");
printArray(arr, mid + 1, j);
System.out.println();
int temp[] = new int[arr.length];
int l = i;
int r = j;
int m = mid + 1;
int k = l;
while (l <= mid && m <= r) {
if (arr[l] <= arr[m]) {
temp[k++] = arr[l++];
} else {
temp[k++] = arr[m++];
}
}
while (l <= mid) {
temp[k++] = arr[l++];
}
while (m <= r) {
temp[k++] = arr[m++];
}
for (int i1 = i; i1 <= j; i1++) {
arr[i1] = temp[i1];
}
System.out.print("After Merge:");
printArray(arr, i, j);
System.out.println();
}
public static void main(String args[]) {
int[] arr = {9, 4, 8, 3, 1, 2, 5};
System.out.print("Initial Array:");
printArray(arr, 0, arr.length - 1);
System.out.println();
mergesort(arr, 0, arr.length - 1);
}
}
Initial Array:[9,4,8,3,1,2,5]
Left:[9]Right:
[4]
After Merge:[4,9]
Left:[8]Right:
[3]
After Merge:[3,8]
Left:[4,9]Right:
[3,8]
After Merge:[3,4,8,9]
Left:[1]Right:
[2]
After Merge:[1,2]
Left:[1,2]Right:
[5]
After Merge:[1,2,5]
Left:[3,4,8,9]Right:
[1,2,5]
After Merge:[1,2,3,4,5,8,9]
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Mysql系列第十七讲 流程控制语句(高手进阶)
- 私藏的5个好用的Pandas函数!
- 漫画:如何在数组中找到和为 “特定值” 的两个数?
- 当你在百度搜索关键字的时候,哪个网站会排在最前面?今天给大家科普一下“网站SEO”
- Mysql系列第十九讲 异常捕获及处理详解
- 【原创】经验分享:一个小小emoji尽然牵扯出来这么多东西?
- jQuery 事件对象,拷贝对象,多库共存
- jQuery 事件注册与事件处理
- v-charts 修改文本颜色
- 使用 jsDelivr 免费加速 GitHub Pages 博客的静态资源(二)
- 竞赛比完,代码、模型怎么处理?Kaggle大神:别删,这都是宝藏
- 显示DataGrid序号的一个适用的方法
- SAP Spartacus cms-components.service.ts里的config.cmsComponents
- ng-template和ng-container的嵌套使用
- SAP Spartacus pageSlot一览