Frage

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.

War es hilfreich?

Lösung

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.

Andere Tipps

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top