Блог пользователя evandrix

Автор evandrix, 12 лет назад, По-английски

Ternary Search

This search finds the min or max in an array that is either strictly increasing and then decreasing or strictly decreasing then stricly increasing.

//array, left bound, right bound, abs(precision) value for array
int ternarySearch(int data[], int left, int right, int precval){
    if (right - left < precval )
       return (left + right)/2;
   
    //Variable to store first 1/3 of array
    int first_third = ( left * 2 + right ) / 3;
    //Variable to store last 1/3 of array
    int last_third = ( left + right * 2 ) / 3;
   
    if (data[first_third] < data[last_third])
        return ternarySearch(data, first_third, right, precval);
    else
        return ternarySearch(data, left, last_third, precval);      
}
  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится

»
12 лет назад, # |
  Проголосовать: нравится +22 Проголосовать: не нравится

Keep up the good work even if people downvote !