Я бы сказал, что это сводится к следующему:
Если мы собираемся выполнить бинарный поиск, у нас будет ключ для поиска. Если у нас есть ключ, мы, вероятно, используем карту вместо массива.
Есть еще одна очень важная вещь, которую нужно иметь в виду:
Двоичный поиск является ярким примером того, как мышление, как хороший программист, сильно отличается от мышления, как нормальный человек . Это один из тех когнитивных скачков, который заставляет вас задуматься о том, чтобы делать операции, которые традиционно выполняются (когда выполняются людьми), во время порядка n и сводить его к времени порядка lg-n. И это делает его очень, очень полезным, даже если он никогда не используется в рабочем коде.