归并排序出错
public static void main(String[] args) {
int[] a={50,10,90,30,70,40,80,60,20};
MergeSort(a);
for(int m=0;m<a.length;m++){
System.out.print(a[m]+" ");
}
}
public static void MergeSort(int[] a){
Msort(a,0,a.length-1);
}
private static void Msort(int[] a, int s, int t) {
if(s>=t)
return;
int m;
m=(s+t)/2;
Msort(a,s,m);
Msort(a,m+1,t);
Merge(a,s,m,t);
}
private static void Merge(int[] a, int s, int m, int t) {
// TODO Auto-generated method stub
int[] res=new int[a.length];
int i,j,k;
for(i=s,j=m+1,k=0;i<=m && j<=t && k<a.length;k++){
if(a[i]<a[j]){
res[k]=a[i];
i++;
}
else{
res[k]=a[j];
j++;
}
}
if(i<=m){
for(int l=i;l<=m;l++)
res[k++]=a[l];
}
if(j<=t){
for(int l=j;l<=t;l++)
res[k++]=a[l];
}
for(k=0;k<a.length;k++){
System.out.println("res="+res[k]);
}
for(k=0;k<a.length;k++){
a[k]=res[k];
}
}
请各位帮我看看,为何输出的a数据全为零,并没有出现排序后的结果,谢谢!
int[] a={50,10,90,30,70,40,80,60,20};
MergeSort(a);
for(int m=0;m<a.length;m++){
System.out.print(a[m]+" ");
}
}
public static void MergeSort(int[] a){
Msort(a,0,a.length-1);
}
private static void Msort(int[] a, int s, int t) {
if(s>=t)
return;
int m;
m=(s+t)/2;
Msort(a,s,m);
Msort(a,m+1,t);
Merge(a,s,m,t);
}
private static void Merge(int[] a, int s, int m, int t) {
// TODO Auto-generated method stub
int[] res=new int[a.length];
int i,j,k;
for(i=s,j=m+1,k=0;i<=m && j<=t && k<a.length;k++){
if(a[i]<a[j]){
res[k]=a[i];
i++;
}
else{
res[k]=a[j];
j++;
}
}
if(i<=m){
for(int l=i;l<=m;l++)
res[k++]=a[l];
}
if(j<=t){
for(int l=j;l<=t;l++)
res[k++]=a[l];
}
for(k=0;k<a.length;k++){
System.out.println("res="+res[k]);
}
for(k=0;k<a.length;k++){
a[k]=res[k];
}
}
请各位帮我看看,为何输出的a数据全为零,并没有出现排序后的结果,谢谢!
...全文
相关推荐
快速排序+归并排序+c++
计算机算法课程的作业,用c++实现了归并排序和快速排序,并比较了两种算法的速度。测试数据为随机生成,可设置为10万、100万、1000万大小的数组。在代码中提供了详细的注释,在容易出错的地方进行了解释。下面是得到的输出结果。 the array num is :1000000 The mergesort run time is:15931ms! The quicksort run time is:234ms! the array num is :10000000 The mergesort run time is:15756ms! The quicksort run time is:2527ms!
习题选讲-Insert or Merge.pdf
http://blog.csdn.net/xkzju2010/article/details/46633425
Go语言 channel如何实现归并排序中的merge函数详解
主要给大家介绍了关于Go语言 channel如何实现归并排序中merge函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
Java数据结构和算法.pdf
Java数据结构和算法.pdf
2011_google笔试题_完整版.doc
2011_google笔试题_完整版.doc


Java SE
