Вам нужно перебрать все элементы в массиве и проверить каждый из них на ограничивающем прямоугольнике, увеличивая ограничивающий прямоугольник, когда текущий элемент находится за его пределами. Как это:
Point
min = first item in array,
max = first item in array;
foreach (item in array of points)
{
min.x = Math.Min (min.x, item.x)
min.y = Math.Min (min.y, item.y)
max.x = Math.Max (max.x, item.x)
max.y = Math.Max (max.y, item.y)
}
(min,max) are now the opposite corners of an axis aligned bounding box
РЕДАКТИРОВАТЬ: у вас есть правильная идея, но есть .NET Framework API для выполнения теста min / max: Math.Min и Math.Max. Если нет какой-либо другой информации о массиве точек, которую можно использовать для сокращения количества тестов, вам придется тестировать каждую точку в массиве. К сожалению, нет коротких путей. Интересно, достаточно ли умен JIT-компилятор, чтобы использовать SIMD для этого?
Кроме того, инициализация со значением 0 может вызвать ошибку, если все точки в массиве меньше нуля.