Я ищу работу bisect
в Haskell, как у bisect_left()
Python и друзей. Ввод будет нижней границей, верхней границей, неубывающей функцией (Ord a) => (Int-> a), которая должна быть определена для всех целых чисел между нижней и верхней границей и значением поиска. Возвращаемое значение является наивысшим целым числом i
, где lower <= i <= upper
и f(i) < search_term
. Производительность должна быть O (log (n)).Ищет общую функцию `bisect`
Hoogling для этого:
(Ord a)=>(Int->a)->Int->Int->a->Int
не дает никаких результатов.
Существует ли стандартный библиотечный оператор поиска в библиотеке где-нибудь?
ли 'Int -> a' функция предполагается монотонно возрастающей/неубывающая? – jwodder
@jwodder функция должна быть неубывающей - отредактирована, чтобы добавить ограничение – gcbenison
Вам также могут понравиться пальцевые деревья, которые предназначены для эффективного поиска монотонных предикатов. –