-1
//function to merge sorted arrays
void merge(int left[],int right[],int a[]){
int lengthLeft=ARRAYSIZE(left);//ARRAYSIZE gets size of the array
int lengthRight=ARRAYSIZE(right);
int i=0,j=0,k=0;
while(i<lengthLeft&&j<lengthRight){
if(left[i]<=right[j]){
a[k]=left[i];
i++;
}
else{
a[k]=right[j];
j++;
}
k++;
}
while(i<lengthLeft){
a[k]=left[i];
k++;
i++;
}
while(j<lengthRight){
a[k]=right[j];
k++;
j++;
}
}
コードは明らかに無限ループに入ります。これは、プログラムが停止したエラーを示しています。論理的には、まったく問題ないようですが、私は答えを得ていません。誰もこれで助けることができますか?私は、ソートされた2つの配列をC++でマージソート用のコードでマージする関数を書いていますが、動作していないようです。誰でもコード内の誤りを見つけることができますか?
このような問題を解決する適切なツールは、デバッガです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –