Simen kjaeraas <simen.kja...@gmail.com> wrote:

Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote

max of n elements is O(n).

T max( T )( T[] values ) {
     T result = values[0];
     foreach ( i, e; values[1..$] ) {
         if ( max( values[i+1..$] ) > result ) {
             result = max( values[i+1..$] );
         }
     }
     return result;
}

Better:


T max( T )( T[] values ) {
    if ( values.length == 1 ) {
        return values[0];
    } else {
return max( values[0..values.length/2] ) > max( values[values.length/2..$] ) ? max( values[0..values.length/2] ) : max( values[values.length/2..$] );
    }
}

--
Simen

Reply via email to