-
Notifications
You must be signed in to change notification settings - Fork 0
Dmitry-rman/partsTest
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Субъективная оценка сложности 3 Предварительно 2 часа Фактически 1.5 минут Задача на определение процентного соотношения стоиомсти акций в инвестиционном портфеле. В задаче есть подвох с округлением тысячных при подсчете суммы процентов. Дан массив из N долей, представленных в виде N рациональных: ['1.5','3','6','1.5'] Задача Написать программу, представляющую эти доли в процентном выражении с точностью до трех знаков после запятой: ['12.500','25.000','50.000','12.500'] Ожидаемое решение ● программа на языке Swift 3/4 в виде одного исходного файла, без использования сторонних библиотек, если можно - использовать Playground ● вычислительная сложность алгоритма и оценка необходимой памяти для его выполнения, ● ограничения на размер входного массива, при котором алгоритм будет выполняться разумное время (до 5 секунд, например). Решение: Выбран функциональный подход поскольку тут оперирование с массивом. Скорость выполнения алгоритма зависит от железа. Чтобы уложиться в 5 секунд нужны замеры и статистика на больших объемах данных. Т.е. профилирование алгоритма и его возможная оптимизация в случае необходимости. На таком маленьком объеме прогнозируемый результат будет неверный поскольку часть времени займут различные вызовы и подготовки. Хотя, мне сложно представить такие реальные объемы данных для расчета долей одного объекта. Этим имеет смысл заниматься если с этого будет какой-то профит или обнаружится узкое место. Вычислительная сложность линейная (в алгоритме нет вложенных циклов). В reduce скорее всего обычное суммирование последовательное элементов, в map преобразование, пробеганием по массиву. Поскольку массив передается по значению в функцию, то размер в памяти примерно = 4 байт * Кол-во_входного_массива * 2 + 29 Вычислительная сложность линейная O(n) * k + n, где k, n константа
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published