У меня есть решение бинарного поиска. Оно O(ln(n) ), а есть ли решение для O(1) за одну операцию, из доп условия?
Условие.
1. Весь отрезок заполнен отрезками, без свободных мест.( и явл. константной).
2. Есть массив, элементы которого явл. Х0 отрезков. к примеру {0,1,1,2,3,5,8,13,21,34} или {1,2,4,8,16,32,}
3. Сами элементы массива. Уже сортированы, и явл. отображением некоторой функции
по возрастанию Длин f(i) = x0i
К примеру из примера 2 . ф-цией f(i)=2^i , но может быть и сложнее, примерно на такое 2^(i/4).
O(1) из задачи может вытекать к примеру для любой линейной последовательности (0,10,20,30,40) тут просто поделить на 10, взять целую часть. index= value/10; А для не линейных отрезков возможно ли придумать запрос.
На вход поступает число, на выход индекс где arr[index]<= var
Да также для длинны пространства для разбития к примеру 1024, можно сделать
switch(n_1024){
case 0:
casse 1:
///....
case 1024:
}