分治策略返回数组中最大最小值

        /// <summary>
        /// 算法MaxMin
        /// 输入n个整数元素的数组A[0...n-1]
        /// 输出(max,min),A中的最大元素和最小元素
        /// 时间:2010-07-23 1:47
        /// </summary>
        /// <param name="A">数组A</param>
        /// <param name="low">最小下标</param>
        /// <param name="high">最大下标</param>
        /// <param name="max">最大值</param>
        /// <param name="min">最小值</param>
        public static void MaxMin(int[] A, int low, int high, ref int max, ref int min) 
        {
            int mid, max1, min1, max2, min2;
            max1 = min1 = max2 = min2 = 0;
            if (high - low == 1 || high - low == 0)
            {
                max = A[low] > A[high] ? A[low] : A[high];
                min = A[low] < A[high] ? A[low] : A[high];
            }
            else
            {
                mid = (high + low) / 2;
                MaxMin(A, low, mid, ref max1,ref min1);
                MaxMin(A, mid + 1, high,ref max2,ref min2);
                max = max1 > max2 ? max1 : max2;
                min = min1 < min2 ? min1 : min2;
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值