C# найти максимальное рекурсивное значение (самое быстрое)C#

Место общения программистов C#
Ответить
Anonymous
 C# найти максимальное рекурсивное значение (самое быстрое)

Сообщение Anonymous »

У меня нет идей по этому поводу. Первоначально попробовал сам, а затем скопировал из SO и Google, которые работали во всех случаях, кроме одного, однако так и не нашел рекурсивный алгоритм, достаточно быстрый для этого конкретного тестового примера в моем задании:/
В любом случае, почему это:
public static int FindMaximum(int[] array)
{
if (array is null)
{
throw new ArgumentNullException(nameof(array));
}

if (array.Length == 0)
{
throw new ArgumentException(null);
}

return FindMaxRec(array, array.Length);
}

public static int FindMaxRec(int[] arr, int n)
{
if (n == 1)
{
return arr[0];
}

return Math.Max(arr[n - 1], FindMaxRec(arr, n - 1));
}

не работает с этим TestCase?:
[Test]
[Order(0)]
[Timeout(5_000)]
public void FindMaximum_TestForLargeArray()
{
int expected = this.max;
int actual = FindMaximum(this.array);
Assert.AreEqual(expected, actual);
}

РЕДАКТИРОВАТЬ 1:
Однако это работает нормально, но мне нужна рекурсия:
public static int FindMaximum(int[] array)
{
if (array is null)
{
throw new ArgumentNullException(nameof(array));
}

if (array.Length == 0)
{
throw new ArgumentException(null);
}

int maxValue = int.MinValue;

for (int i = 0; i < array.Length; i++)
{
if (array > maxValue)
{
maxValue = array;
}
}

return maxValue;
}



Подробнее здесь: https://stackoverflow.com/questions/696 ... ve-fastest
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»