MergeSort 归并排序
2013-09-06 14:48
316 查看
实现:
二路归并
这个哥哥讲的不错,跟他学习了:
http://www.cnblogs.com/shudonghe/archive/2013/09/05/3302888.html
这个可以看看:
/content/4929416.html
二路归并
public class TestMergeSort { public int[] mergeSortArray(int[] arr, int left, int right){ if(left >= right) return null; int mid = (left+right)/2; mergeSortArray(arr, left, mid); mergeSortArray(arr, mid+1, right); merge(arr, left, mid, right); return arr; } public int[] merge(int[] arr, int left, int mid, int right){ int[] temp = new int[arr.length]; int r1 = mid +1; int tIndex = left; int cIndex = left; while(left<=mid && r1<=right){ if(arr[left] <= arr[r1]){ temp[tIndex++] = arr[left++]; }else{ temp[tIndex++] = arr[r1++]; } } while(left <= mid){ temp[tIndex++] = arr[left++]; } while(r1<=right){ temp[tIndex++] = arr[r1++]; } while(cIndex <= right){ arr[cIndex] = temp[cIndex]; cIndex++; } return arr; } public static void main(String[] args) { int[] arr = {6,2,4,1,5,9}; TestMergeSort test = new TestMergeSort(); test.mergeSortArray(arr, 0, arr.length -1); for(int i = 0 ; i < arr.length; i ++){ System.out.println(arr[i]); } } }
这个哥哥讲的不错,跟他学习了:
http://www.cnblogs.com/shudonghe/archive/2013/09/05/3302888.html
这个可以看看:
/content/4929416.html
相关文章推荐
- 归并排序(merge_sort)(及自底向上的归并排序)
- 归并排序(Merge Sort)
- 算法-排序-归并排序(MergeSort)分析
- 归并排序(Merge Sort)
- 归并排序(Merge_Sort)
- 排序算法详解【归并排序-Merge_Sort】
- Merge Sort (归并排序)
- 结合归并排序和插入排序 Merge with Insertion Sort
- 【每日一题(28)】高等排序算法(2) 归并排序(MergeSort)
- 归并排序(merge sort)算法实现
- 归并排序(merge sort)c++实现
- 无聊写排序之 ---- 归并排序(MergeSort) 非递归实现
- 归并排序(Mergesort)之Java实现
- 归并排序(MergeSort)Java实现
- 排序算法详解【归并排序-Merge_Sort】
- 【算法导论】2-2 二路归并排序(分治)merge-sort 和逆序对的问题
- 面试之路(16)-归并排序详解(MergeSort)递归和非递归实现
- 归并排序(merge sort)的一个基于模板的实现
- 归并排序(Merge Sort)
- 归并排序 Merge sort