// Якщо це необхідно можна перевірити чи він рівний value if (A[high] > value) // не знайдено, high = 0 чи A[high - 1] < value, A[high] > value else // Знайдено return high } BinarySearchLastPosition(A[0, N-1], value) { low = -1 high = N while (high - low > 1) { mid = (high + low) / 2 if (A[mid] <= value) low = mid else high = mid } // Зараз у high знаходиться індекс першого елемента такого, що A[high] > value, а в A[low] - останнього елемента такого, що A[low] <= value return low } В сумі ці дві версії можна використовувати, наприклад, щоб знайти скільки елементів масиву рівні даному. Цікаві дані Масове використання лінійного пошуку