Java语言 实现并归排序
2016-03-01 16:09
507 查看
并归排序 时间复杂度o(n log2n) 需要log2n次并归,每次并归的时间复杂度为 o(n);
</pre><pre code_snippet_id="1593425" snippet_file_name="blog_20160301_3_5306061" name="code" class="java">public class MergeSort { public int B[]; public int[] mergeSort(int[] A, int n) { // write code here B = new int ; myMergeSort(A, 0, n-1); return A; } //递归分治 public void myMergeSort(int[] A, int low, int hight){ if(low < hight){ int mid = (low+hight)/2; myMergeSort(A,low,mid); myMergeSort(A,mid+1,hight); merge(A,low,mid,hight); } }
//合并 public void merge(int[]A,int low, int mid, int hight){ int i,j,k; for(i=low ;i<=hight;i++){ B[i] = A[i]; } for(i=low,j=mid+1,k=i; i<=mid&&j<=hight; k++){ if(B[i]<=B[j]){ A[k] = B[i++]; }else{ A[k] = B[j++]; } } while(i<=mid) A[k++] = B[i++]; while(j<=hight) A[k++] = B[j++]; } }
相关文章推荐
- 通过使用Byte Buddy,便捷地创建Java Agent
- Java中23中设计模式
- Proxy动态代理
- java方法中将类实例作为参数,在方法中有可能会改变这个类实例中的资源
- 线上Java应用排查和诊断规范
- Java中的System类
- Leetcode:217. Contains Duplicate(JAVA)
- Java进阶10 内存管理与垃圾回收
- Java关键字final、static使用总结
- java装饰模式
- 浅析Java中的final关键字
- Java进阶09 事件响应
- Java抽象类与接口的区别
- Java线程池
- Java进阶07 嵌套类
- Eclipse常用的快捷键在AS中的对应
- Java进阶06 容器
- Java多态性理解
- mybatis与spring整合案例
- Java多线程(三)——线程挂起、恢复、终止