小编Lin*_*cts的帖子

C# 递归查找最大值(最快)

我对此没有什么想法。我自己最初尝试过,然后从 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));
        }
Run Code Online (Sandbox Code Playgroud)

不适用于此TestCase?:

        [Test]
        [Order(0)]
        [Timeout(5_000)]
        public void FindMaximum_TestForLargeArray()
        {
            int expected = this.max;
            int actual = FindMaximum(this.array);
            Assert.AreEqual(expected, actual);
        } …
Run Code Online (Sandbox Code Playgroud)

c# arrays testing recursion max

0
推荐指数
1
解决办法
1000
查看次数

标签 统计

arrays ×1

c# ×1

max ×1

recursion ×1

testing ×1