Подумайте о бинарном поиске.
При реализации двоичного поиска вам нужно подумать о случае, когда сегмент массива, который вы разделяете, имеет нечетную длину. В этот момент у вас есть 2 варианта: 1. Раунд вверх/вниз 2. Проверяйте оба индекса и принимайте решение перед продолжением.
Если вы выберете первый случай (давайте предположим, что вы округлитесь вниз). Для массивов с нечетной длиной, где номер, который вы ищете, тот, который прошел среднюю точку, у вас будет дополнительная итерация.
Если бы этот нечетный массив был добавлен еще один элемент, он бы спас вам эту дополнительную итерацию.
Если вы пошли во второй случай, то большинство исполнений алгоритма с более нечетными итерациями тогда даже потребовало бы большего количества сравнений, если бы оно использовалось с дополнительным элементом.
Обратите внимание, что все это зависит от реализации, и поэтому не может быть реального ответа без реального алгоритма (и, кроме того, реальной реализации).
Также все это основано на предположении, что вы говорите о фактической разнице времени выполнения, а не асимптотической разности. Если это не так, тогда ответ будет «нет». Нет алгоритмов с немонотонным наихудшим случаем асимптотический время работы. Это будет игнорировать концепцию «наихудшего случая».
Определить «полезный». Алгоритм может быть полезен, даже если он не настолько эффективен, насколько это возможно. Кроме того, вы устраняете надуманные алгоритмы? Если вы ищете обычные, известные, известные алгоритмы с этим свойством или существуют ли проблемы, у которых оптимальный алгоритм имеет это свойство, я предлагаю вам быть откровенным. В противном случае «полезность» субъективна. – Patrick87