二分搜索问题
找出最大值和最小值 时间复杂度O(n)
using System;
using System.Collections.Generic;
namespace dataLearn
{
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int> { 10, 3, 6, 4, 7, 1, 9, 2 };
var v = get(list, 0, list.Count - 1);
Console.Out.Write(v.Item1+" - "+v.Item2);
}
static (int, int) get(List<int> list, int start, int end)
{
if (start < end)
{
int middle = (start + end) / 2;
var left = get(list, start, middle);
var right = get(list, middle + 1, end);
return (left.Item1 > right.Item1 ? right.Item1 : left.Item1, left.Item2 > right.Item2 ? left.Item2 : right.Item2);
}
else
return (list[start], list[start]);
}
}
}