Навигация по массиву котировок вне мета трейдера. Вопрос к программистам. - страница 2

 
Integer:
Бинарный поиск

Кстати, самый быстрый таки троичный))
 
Еще - ТС забыл упомянуть, упорядочен ли массив по времени. Если нет, то максимально достижимая скорость O(n). На квантовом компьютере - O(sqrt(n)) ;)
 
alsu:
Кстати, самый быстрый таки троичный))
Кидай реализацию, заодно обсудим.
 

Автору еще интересно? Как раз решал для себя такую же задачу, вроде красиво получилось.

 
TheXpert:
Кидай реализацию, заодно обсудим.

Нууу, не хочу ее писать, скучно! Утверждение основано на том, что среднее время поиска на троичном дереве чуть меньше, чем двоичного, это известная задача теории информации... Но на практике надо учитывать накладные расходы: чтоб поделить диапазон пополам, достаточно воспользоваться однотактовой операцией <<, а чтоб делить на 3 части, надо уже именно делить. (Интересно, что именно этим объясняется интуитивное стремление человека решать практические задачи, выбирая "один из трех". Еще "быстрая сортировка" с разбиением на 3 части работает быстрее по тем же причинам. А еще в эпоху лампочек делали троичный компьютер /т.е. работал он не на битах, а на тритах - 0,1,2/, который при прочих равных считал быстрее; но впоследствии двоичные победили из-за большей надежности и простоты реализации на традиционной элементной базе).
 
Не очень-то я занимался троичной логикой, но сдаётся мне, что в троичном компьютере используются значения: -1, 0, +1
 
alsu:
Нууу, не хочу ее писать, скучно!
Не ленись ) я слабо представляю себе как можно ускорить двоичный поиск и вообще троичный поиск слабо себе представляю.
 
alsu:
Нууу, не хочу ее писать, скучно! Утверждение основано на том, что среднее время поиска на троичном дереве чуть меньше, чем двоичного, это известная задача теории информации... Но на практике надо учитывать накладные расходы: чтоб поделить диапазон пополам, достаточно воспользоваться однотактовой операцией <<, а чтоб делить на 3 части, надо уже именно делить. (Интересно, что именно этим объясняется интуитивное стремление человека решать практические задачи, выбирая "один из трех". Еще "быстрая сортировка" с разбиением на 3 части работает быстрее по тем же причинам. А еще в эпоху лампочек делали троичный компьютер /т.е. работал он не на битах, а на тритах - 0,1,2/, который при прочих равных считал быстрее; но впоследствии двоичные победили из-за большей надежности и простоты реализации на традиционной элементной базе).

Нууу, эпоха лампочек еще не закончилась:) Оптимальный - 2.7182818285 примерно. 
 
НАЕТMikeM:
Не очень-то я занимался троичной логикой, но сдаётся мне, что в троичном компьютере используются значения: -1, 0, +1

Точнее ИСТИНА, ЛОЖЬ и ХРЕНЗНАЕТ.
 
MikeM:
Не очень-то я занимался троичной логикой, но сдаётся мне, что в троичном компьютере используются значения: -1, 0, +1

Какая разница? Можно ведь сказать, что и в двоичном не 0 и 1, а яблоки и арбузы. Как захотели, так и обозначили.
Причина обращения: