java专题——归并排序
来源:互联网 发布:网络启动安装系统 编辑:程序博客网 时间:2024/05/16 09:16
package 归并排序;public class MergeSort {public static void main(String[] args) {// TODO 自动生成的方法存根 int[] input = new int[]{0,9,1,5,8,3,7,4,6,2}; mergeSort(input); for(int k : input){ System.out.print(k + "\t"); } System.out.println();}private static void mergeSort(int[] input) {MSort(input,input,0,input.length-1);}private static void MSort(int[] SR, int[] TR1, int begin, int end) {int tmp;int[] TR2 = new int[end+1]; //TR2是存放排序后的子序列if(begin == end){TR1[begin] = SR[begin];}else{tmp = (begin + end)/2;MSort(SR,TR2,begin,tmp);//将SR[begin ... tmp]归并为有序的TR2[begin ... tmp]MSort(SR,TR2,tmp+1,end);//将SR[tmp+1 ... end]归并为有序的TR2[tmp+1 ... end]Merge(TR2,TR1,begin,tmp,end);//将TR2[begin ... tmp]和TR2[tmp+1 ... end]归并为有序的TR1[begin ... end]}}private static void Merge(int[] SR, int[] TR, int i, int m, int length) {int j,k,l;for(j=m+1,k=i;i<=m&&j<=length;k++){if(SR[i] < SR[j]){TR[k] = SR[i++];}else{TR[k] = SR[j++];}}if(i<=m){for(l=0;l<=m-i;l++){TR[k+l] = SR[i+l];}}if(j<=length){for(l=0;l<=length-j;l++){TR[k+l] = SR[j+l];}}}}
0 0
- java专题——归并排序
- java算法专题-归并排序
- 归并排序——java
- 归并排序——java
- 归并排序—java实现
- 归并排序—Java版
- 【专题】归并排序
- Java排序算法——归并排序
- 排序专题之归并排序
- 排序—归并排序
- 《排序算法》——归并排序,插入排序(Java)
- 归并排序——java实现
- 回首Java——归并排序
- 简单的归并排序—Java实现
- java专题——交换排序
- java专题——选择排序
- java专题——插入排序
- 疯狂的Java算法——插入排序,归并排序以及并行归并排序
- Android中shape的使用
- subString的用法
- GoodZhang在学Python(十二)--简单客户端、服务端socket通信
- 2013长沙站A题||hdu4791 思维题
- POJ-2723-Get Luffy Out
- java专题——归并排序
- Python入门教程 超详细1小时学会Python
- IOS 测试机进行推送
- A. Appleman and Toastman
- java专题——交换排序
- opencv之基于qt ide调试
- MAC OSX快捷键
- java基础——多线程(线程池)
- java专题——选择排序