归并排序
2016-05-17 20:27
225 查看
public class MergeSort{ public static void main(String[]args){ int []A={1,0,2,4,7,2,1,-1}; MergeSort(A,0,A.length-1); for(int i=0;i<A.length;i++){ System.out.print(A[i]+" "); } } public static void MergeSort(int []A,int low,int high){ if(low<high){ int mid=(low+high)/2; MergeSort(A,low,mid); MergeSort(A,mid+1,high); merge(A,low,mid,high); } } public static void merge(int []A,int low,int mid,int high){ int []temp=new int [high-low+1]; int h1=low,h2=mid+1,i=0; while(h1<=mid&&h2<=high){ if(A[h1]<=A[h2]){ temp[i++]=A[h1++]; }else{ temp[i++]=A[h2++]; } } while(h1<=mid){ temp[i++]=A[h1++]; } while(h2<=high){ temp[i++]=A[h2++]; } int k=0; while(low<=high){ A[low++]=temp[k++]; } } }
相关文章推荐
- [2014-9-12]多线程
- [2014-9-13]委托多线程
- [2014-9-15]异步委托线程高级
- [wpf笔记] 1.xaml
- 左旋转字符串
- javascript需要知道的1
- 解析js中的call
- javascript的几种继承方式
- Java并发机制深究1-synchronized和volatile
- [置顶]AutoFac使用
- Xcode最最实用快捷键
- MySQL中concat函数
- Leetcode no. 304
- 使linux内核支持perf的配置
- DataGridView窗体之间的传递
- [2014-9-9]反射
- [2014-9-10]异步编程
- [2014-9-11]异步编程继续
- linux设置定时任务
- 存根类STUB