java吧 关注:1,296,674贴子:12,831,512
  • 2回复贴,共1

求大神检测下哪边角标越界了

只看楼主收藏回复

public class MergeSort
{
public static void main(String [] args)
{
int []arr={2,4,1,5,6};
mergeSort(arr,0,4);
}
public static void Merge(int []arr,int p,int q,int r){
int n1=q-p+1;
int n2=r-q;
int []L=new int[n1];
int []R=new int[n2];
for(int i=0;i<n1;i++) { L[i]=arr[i];
}
for(int i=0;i<n2;i++)
{
R[i]=arr[q+1+i];
}
int m=0,n=0;
for(int k=0;k<=r;k++)
{
if(L[m]<R[n]) arr[k]=L[m++];
else arr[k]=R[n++];
}
}
public static void mergeSort(int []arr,int p,int r)
{
if(p<r)
{
int q=(r+p)/2;
mergeSort(arr,p,q);
mergeSort(arr,q+1,r);
Merge(arr,p,q,r);
}
}
}


1楼2012-06-02 14:10回复
    代码的功能是归并排序,编译显示数组角标越界,找半天没看出来求哥们点醒


    2楼2012-06-02 14:10
    回复
      2026-02-02 17:37:36
      广告
      不感兴趣
      开通SVIP免广告
      求解析啊


      3楼2012-06-02 14:34
      回复