using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
int[] intArr = { 8,2,5,9,4,1,3,7,-1};
MaxMin result = FindMaxAndMin(intArr, 0, intArr.Length - 1);
Console.WriteLine("max is {0}, min is {1}",result.max, result.min);
}
static MaxMin FindMaxAndMin(int[] input, int start, int end)
{
MaxMin result;
if (end - start <=1)
{
if (input[start]>input[end])
{
result.max = input[start];
result.min = input[end];
}
else
{
result.max = input[end];
result.min = input[start];
}
return result;
}
MaxMin front = FindMaxAndMin(input, start, start + (end - start) / 2);
MaxMin rear = FindMaxAndMin(input, start + (end - start) / 2 + 1, end);
if (front.max > rear.max)
{
result.max = front.max;
}
else
{
result.max = rear.max;
}
if (front.min<rear.min)
{
result.min = front.min;
}
else
{
result.min = rear.min;
}
return result;
}
}
struct MaxMin
{
public int max;
public int min;
}
}