Словари быстрее чем максимальные сравнения - PullRequest
0 голосов
/ 04 июля 2019

Я работаю над проектом, в котором мне нужно получить конечные значения от пользователя с минимально возможной задержкой. Пользовательский ввод - это серия ползунков с целочисленными значениями от 0 до 100 (поэтому мне все равно за пределами этого диапазона).

Это оригинальная настройка (псевдокод, но проект написан на swift 5 для запуска на macOS)

final = max(a*A, b*B, s1*S1, s2*S2, ... s8*S8)

значения в нижнем регистре гарантированно не изменяются требуемым образом (но могут быть изменены пользователем в любое время, поэтому не могут быть жестко закодированы) если строчные буквы a или b меняются, то это выполняется один раз. если изменяется верхний регистр A, B или S, то это выполняется 32 раза.

Первоначальное переосмысление: sValue = max (s1*S1 ... s8*S8) //this would only run when one of the S values changes final = max (a*A, b*B, sValue)

Рекомендация друга: создать словарь (хеш-таблицу) с массивом Int в качестве ключа и конечным значением в качестве значения; тогда сделай поиск. Этот словарь может быть построен при запуске программы (можно прикрепить его за экраном загрузки)

Итак, что является лучшим решением с точки зрения производительности: словарь с массивом в качестве ключей или каждый раз запуск функции max? Или у кого-нибудь есть другие рекомендации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...