0
配列のマージについて
こんにちは。
今2つの配列を整列させて、一つの新しい配列を作ろうと
しています。
しかし、途中でjava.lang.ArrayIndexOutOfBoundsException: 5
が起こってしまいます。しかし、まったく同じソースを、
http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/merge-sort.htmlのページから引っ張ったところ、なぜかエラーが起こりません。以下に2つのソースを起きます。何故僕のが上手くいかないか教えてください。
//自作
public int[] marge(int[] a, int[] b, int[] c){
int i = 0;
int j = 0;
//aかbの配列が残っているとき
while( i < a.length || j < b.length){
//bが空か、aがbより小さいときにcにaを加える
if(j > b.length || (i < a.length && a[i] < b[j])){
c[i+j]=a[i];
i++;
//cにbを加える
}else{
c[i+j]=b[j];
j++;
}
}
return c;
}
//他サイトの
void merge(int[] a1,int[] a2,int[] a){
int i=0,j=0;
while(i<a1.length || j<a2.length){
if(j>=a2.length || (i<a1.length && a1[i]<a2[j])){
a[i+j]=a1[i];
i++;
}
else{
a[i+j]=a2[j];
j++;
}
}
}
よろしくお願いします。