归并排序
2017-11-22 16:31
267 查看
//归并排序 class Merge{ static int []aux; static void sort(int []a) { aux = new int[a.length]; mergeSort(a, 0, a.length-1); System.out.println(Arrays.toString(a)); } static void mergeSort(int a[],int lo,int hi) { // TODO Auto-generated method stub if(lo<hi) { int mid =lo+ (hi-lo)/2; mergeSort(a, lo, mid); mergeSort(a, mid+1, hi); merge(a, mid, lo, hi); }else { return; } } //合并有序数组 public static void merge(int a[],int mid,int low ,int hi) { int i = low; int j = mid +1; for (int f=low;f<=hi;f++) { aux[f] = a[f]; } for(int k = low;k<=hi;k++) { if(i>mid) { a[k] = aux[j++]; }else if (j>hi) { a[k] = aux[i++]; }else { a[k] = aux[i]<aux[j]?aux[i++]:aux[j++]; } } System.out.println(Arrays.toString(a)+1); } }
相关文章推荐
- 排序算法——归并排序
- 归并排序
- 快速排序,插入排序,归并排序,计数排序,基数排序,堆排序
- 归并排序
- 第三周作业——冒泡排序和归并排序
- 归并排序(merge sort)的一个基于模板的实现
- 归并排序
- C++编程练习(15)----“排序算法 之 归并排序“
- 【数据结构与算法】内部排序之四:归并排序和快速排序(含完整源码)
- 归并排序
- 排序算法之归并排序
- 【33】利用归并排序求逆序数对
- 数据结构 - 归并排序(merging sort) 详解 及 代码
- 归并排序
- Ultra-QuickSort 学习归并排序(树状数组+离散化)
- 链表的归并排序(经典实现:递归)
- 归并排序
- 递归算法学习---归并排序
- 归并排序求逆序对
- 【算法导论学习-002】归并排序(MergeSort)