归并排序算法之Java实现
来源:互联网 发布:python 书籍推荐 编辑:程序博客网 时间:2024/06/01 07:39
归并排序的基本思想完全遵循分治模式:
分解:分解待排序的n个元素的序列成各具n/2个元素的两个子序列。
解决:使用归并排序递归的排序两个子序列。
合并:合并两个已排序的子序列以产生已排序的答案。
Java代码实现此算法如下:
public static void mergeSort(int[] arr, int lo, int hi) { if ( lo < hi - 1 ) { int mi = ( lo + hi ) / 2; mergeSort( arr, lo, mi ); mergeSort( arr, mi, hi ); merge( arr, lo, mi, hi); } } public static void merge(int[] arr, int lo, int mi, int hi) { int frontLength = mi - lo; int backLength = hi - mi; int[] l = new int[frontLength + 1]; int[] r = new int[backLength + 1]; for (int i = 0; i < frontLength; i++) l[i] = arr[lo + i]; for (int i = 0; i < backLength; i++) r[i] = arr[mi + i]; l[frontLength] = Integer.MAX_VALUE; r[backLength] = Integer.MAX_VALUE; int lp = 0; int rp = 0; for (int i = lo; i < hi; i++) { if (l[lp] < r[rp]) { arr[i] = l[lp]; lp++; } else { arr[i] = r[rp]; rp++; } } }
0 0
- Java实现排序算法之归并排序
- 排序算法之归并排序java实现
- java实现排序算法之归并排序(2路归并)
- 算法学习之java实现归并排序
- 归并排序算法之Java实现
- 【java实现】算法导论之归并排序
- Java算法实现之归并排序
- 算法 排序算法之归并排序 java实现
- 排序算法之快速排序、归并排序(java实现)
- Java实现-高效排序算法之归并排序
- java实现归并排序算法
- Java归并排序算法实现
- java实现归并排序算法
- java实现归并排序算法
- 归并排序算法Java实现
- 算法-Java实现归并排序
- java算法之归并排序
- java算法之归并排序
- hdu5521 Meeting
- 关于cell的重用标识符的问题
- java Map及Map.Entry详解
- C++primer第五版第三章学习笔记
- Android自定义相机超详细讲解
- 归并排序算法之Java实现
- 源生javascript将xml转换成json格式
- C++设计模式[五]适配器模式
- Linux命令——w
- 开发iOS应用要比开发安卓应用省时约30%
- Leetcode138: Partition List
- Leetcode sql算法题
- 简单邻接表构造图
- hdu1219