Вопрос

Simple question: will the following code work for finding the minimum value in an array of doubles (assume at least one value exists):

double[] values = ...

double currentMin = Double.POSITIVE_INFINITY;

for(int i = 0; i < values.length; i++) {
    if(values[i] < currentMin) {
        currentMin = values[i];
    }
}

return currentMin;

The crux of the question is whether POSITIVE_INFINITY will behave as expected when compared to other (real) double values, as well as potential infinities themselves.

Это было полезно?

Решение

It is safe to use Double.POSITIVE_INFINITY. From the specification

All values other than NaN are ordered, with negative infinity less than all finite values, and positive infinity greater than all finite values.

Другие советы

Just set the minimum to the first element of the array (values[0) since you assume that at-least one value exists. If there is only one element, it must be the minimum, and otherwise, it will be updated accordingly.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top