首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
java面试题基础
冒泡排序算法
插入排序算法
归并排序算法
二叉树排序算法
基数排序
选择排序
堆排序
快排
TCP-三次握手
HTTP协议
WebSocket
Mysql架构
Innodb与Myisam数据库引擎
事务隔离级别
面向对象(OOP)
异常
泛型
Object
StringBuilder
代理
注解
java面试题基础二
HashMap
ConcurrentHashMap
BlockingQueue
线程
Volatile
AtomicInteger
Synchronized
Java虚拟机架构
类加载器
内存模型
垃圾回收
Mybatis面试题
IOC
高并发系统设计
分布式缓存
分布式锁
分布式事务
消息队列
当前位置:
首页>>
技术小册>>
Java面试指南
小册名称:Java面试指南
当需要对一个较大的数组进行排序时,归并排序是一种非常高效的排序算法。它的基本思想是将一个大数组分成两个子数组,递归地对两个子数组进行排序,然后再将排序后的子数组合并成一个大数组。下面是一个使用Java编写的归并排序算法: ```java public class MergeSort { public void sort(int[] arr) { if (arr == null || arr.length <= 1) { return; } mergeSort(arr, 0, arr.length - 1); } private void mergeSort(int[] arr, int left, int right) { if (left < right) { int middle = (left + right) / 2; mergeSort(arr, left, middle); mergeSort(arr, middle + 1, right); merge(arr, left, middle, right); } } private void merge(int[] arr, int left, int middle, int right) { int[] temp = new int[arr.length]; for (int i = left; i <= right; i++) { temp[i] = arr[i]; } int i = left; int j = middle + 1; int k = left; while (i <= middle && j <= right) { if (temp[i] <= temp[j]) { arr[k] = temp[i]; i++; } else { arr[k] = temp[j]; j++; } k++; } while (i <= middle) { arr[k] = temp[i]; k++; i++; } while (j <= right) { arr[k] = temp[j]; k++; j++; } } } ``` 在这个算法中,sort方法调用了私有的mergeSort方法,该方法递归地对左半部分和右半部分进行排序,最后将这两个部分合并。
上一篇:
插入排序算法
下一篇:
二叉树排序算法
该分类下的相关小册推荐:
手把手带你学习SpringBoot-零基础到实战
SpringBoot合辑-高级篇
Mybatis合辑3-Mybatis动态SQL
Java语言基础14-枚举和注解
Java语言基础16-JDK8 新特性
Java必知必会-JDBC
Java语言基础13-类的加载和反射
Mybatis合辑1-Mybatis基础入门
Java语言基础3-流程控制
JAVA 函数式编程入门与实践
Java高并发秒杀入门与实战
经典设计模式Java版