归并排序--JAVA代码实现
2017-08-26 20:05
387 查看
归并排序流程:
实现代码:
实现代码:
import java.util.Arrays; public class MergeSort { public static int[] mergeSort(int[] arr,int n) { if (arr == null || arr.length < 2) { return arr; } process(arr, 0, n - 1); return arr; } public static void process(int[] arr, int left, int right) { if (left == right) { return; } int mid = (left + right) / 2; process(arr, left, mid);//分解 process(arr, mid + 1, right); merge(arr, left, mid, right);//归并 } public static void merge(int[] arr, int left, int mid, int right) { int[] help = new int[right - left + 1]; int l = left; int r = mid + 1; int index = 0; while (l <= mid && r <= right) { if (arr[l] <= arr[r]) { help[index++] = arr[l++]; } else { help[index++] = arr[r++]; } } while (l <= mid) { help[index++] = arr[l++]; } while (r <= right) { help[index++] = arr[r++]; } for (int i = 0; i < help.length; i++) { arr[left + i] = help[i]; } } public static void main(String[] args) { int[] arr = {5,6,1,2,3,4,7,8}; arr = mergeSort(arr, arr.length); System.out.println(Arrays.toString(arr)); } }
相关文章推荐
- 排序基础之归并排序、快排、堆排序、希尔排序思路讲解与Java代码实现
- 归并排序 C++/Java 递归实现代码 -犯了菜鸟老毛病
- 算法代码实现之归并排序,Java实现,自顶向下与自底向上两种方式
- 插入排序及归并排序java代码实现及详细注释
- Java实现常见排序--希尔排序、快排序、堆排序、归并排序等Java实现代码
- 归并排序的原理及java代码实现
- 归并排序(Java代码实现)
- 快速排序,归并排序,堆排序的java代码实现
- 算法-java代码实现归并排序
- java 算法之归并排序详解及实现代码
- 选择,插入,希尔,快速,堆,归并排序六种排序方式的Java 实现和性能对比(付代码)
- 一个直接用java类实现连接池的代码例子
- JAVA断点续传实现方法代码
- 购物车的 java 代码实现方法
- java代码中实现字符编码转换(解决中文乱码问题)
- Jsp/Java代码分离.实现页面真正的代码分离 实现框架代码,jxui:page标签
- Jsp/Java代码分离.实现页面真正的代码分离 实现框架代码:BasePage,TextBox,BasePageFilter
- Jsp/Java代码分离.实现页面真正的代码分离 测试代码是否按想法运行,下载原代码
- Java中数据库事务处理的实现-JSP教程,Java技巧及代码
- 用Java实现归并排序(Merge-Sort)算法