Java で分割統治アルゴリズムを作成しました。問題は、それが機能することをテストしたことですが、データに対してなぜ、または何をするのかが本当にわからないことを除いて. 配列がサブパーツに分割されることは知っていますが、それとは別に、すべてを返すとどうなるか混乱しています。たとえば、最小の基本ケースはその数を返し、それを比較しますか? また、関数に複数の再帰呼び出しがある場合、再帰はどのような順序で行われますか? 私のコードは次のとおりです。
public static int FindMin(int[] array, int low, int high)
{
int min = 0, min1 = 0, min2 = 0;
int mid = 0;
if (low == high)
{
min = array[low];
}
else if (low == (high - 1))
{
if (array[low] < array[high])
{
min = array[low];
}
else if (array[low] > array[high]);
{
min = array[high];
}
}
else
{
mid = (low + high)/2;
min1 = FindMin(array, low, mid);
min2 = FindMin(array, mid+1, high);
if (min1 < min2)
{
min = min1;
}
else
{
min = min2;
}
}
return min;
}
基本的に私が知りたいのは、次の入力が与えられた場合にアルゴリズムがどのように機能するかです: 3,6,1,5,7,2,1. それが返すものなどのように。
質問があいまいな場合は申し訳ありませんが、コーディング方法は知っています。開始したすべてのGoogleページとPDFに関係なく、すべてを返す方法を理解できないようです。
とにかく助けてくれてありがとう!:D