再帰アルゴリズムを使用して挿入ソートをしようとしていますが、繰り返しループは一切使用できません。 ここに私が書いたコードです。 ISでi
()は1 から始まるJava(ループなし)で再帰アルゴリズムを使用した挿入ソート
class Sort {
public int shift(int[] a, int j, int k){
if(j>=0 && k< a[j]){
a[j + 1] = a[j];
j--;
shift(a,j, k);
}
return j;
}
public void IS(int a[], int i){
int j, temp;
if(i<a.length){
j = i-1;
temp = a[i];
a[shift(a,j,temp)+1]=temp;
IS(a,i+1);
}
}
}
私は私のシフト()メソッドについて困惑している動作するようには思えません。以下のコードを使用している場合、それは動作します。 whileループを再帰的アルゴリズムに変えようとしていますが、私は常に間違った出力を得ています。
while (j >= 0 && temp<data[j]) {
a[j + 1] = a[j];
j--;
}
私は、このコードで実行されたデバッグの証拠がないので、この質問をdownvotedしました。あなたの質問を編集して、あなたのデバッグが明らかにしたことと、特定のコード行に関する特定の質問を表示してください。参照:[最小限で完全で検証可能な例の作成方法](http://stackoverflow.com/help/mcve)と[小規模プログラムのデバッグ方法](https://ericlippert.com/2014/03/05)/how-to-debug-small-programs /) –
申し訳ありませんが、わかりませんでした。私はかなり新しいstackoverflowです。私はそれを取る。 – rohan510