归并排序

Posted 猫儿爹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归并排序相关的知识,希望对你有一定的参考价值。

主要思想是先对序列进行分割,然后再进行归并排序。
如一个数组[1,2,3,4,5,6]
第一次分割为[1,2,3],[4,5,6]
第二次分割为[1,2],[3],[4,5],[6]
第三次分割为[1],[2],[3],[4],[5,[6]
第一次归并排序为[1],[2];[4],[5]
.
.
.
以此类推

public
class MergeSort { private double[] bridge; public MergeSort(double [] sorted){ if(sorted.length==0){ throw new NullPointerException("size is null"); } int sorted_length=sorted.length; bridge=new double[sorted_length]; } public void mergeso(double [] obj,int left,int right){ while(left<right){ int center=(left+right)/2; mergeso(obj,left,center); mergeso(obj,center+1,right); merge(obj,left,center,right); } } public void merge(double [] obj,int left,int center,int right){ int mid=center+1; int tem1=left; int tem2=left; while(left<=center && mid<=right){ if(obj[left]<obj[mid]){ bridge[tem1++]=obj[left++]; } else{ bridge[tem1++]=obj[mid++]; } } while(left<=center){ bridge[tem1++]=obj[left++]; } while(mid<=center){ bridge[tem1++]=obj[mid++]; } copy(obj,tem2,right); } public void copy(double [] obj,int left,int right){ while(left<=right){ obj[left]=bridge[left]; left++; } } }

 

以上是关于归并排序的主要内容,如果未能解决你的问题,请参考以下文章

python代码实现归并排序(Merge Sort )

排序之外部排序

Python代码实现归并排序

Python代码实现归并排序

算法排序02——归并排序介绍及其在分治算法思想上与快排的区别(含归并代码)

排序算法之归并排序