public class mergerSort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
int [] a = {5,3,6,8,2,0,9,4,12,18};
int [] b = new int [10];
if(a.length ==1)
System.out.println(a[0]);
else{
new mergerSort().mergerSort(a,b, 0,9);
for(int i = 0 ; i <10; i++)
System.out.print(a[i]+" ");
}
}
public void mergerSort(int []a,int [] b,int f,int l){
if(l==f){
return;
}
else{
mergerSort(a , b,f,(f+l)/2);
mergerSort(a , b,(f+l)/2+1, l);
merger(a,b,f,(f+l)/2,l);
}
}
public void merger(int [] a ,int []b, int f, int m ,int l){
int p = f;
int q = m+1;
int k =f;
while((p<=m)&&(q<=l)){
if(a[p]<=a[q])
b[k++] = a[p++];
else
b[k++] = a[q++];
}
if(p>m){
for(int i=q;i<=l;i++){
try{
b[k++]= a[i];
}catch(Exception e){
System.out.println(k+ " "+i);
}
}
}else{
for(int i = p;i<=m;i++){
b[k++] = a[i];
}
}
for(int i = f ; i<=l;i++){
a[i] = b[i];
}
}
}
12-22
07-19
07-19
07-19
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交