Ясно. Ну я только начал все изучать. Полагал, что раз для O(log n) можно посчитать кол-во операций, то и все другое можно посчитать. Например, при 10 элеметах операций будет 3, при 100 будет 7 и так далее. А выходит, для O(n ^ 2) так не получится.
"используйте 1 дерево чтоб сузить область поиска"
да, вот этот вариант мне кажется самым оптимальным. Изначальный массив распилить на половину или даже 4 части, и тем самым не держать в памяти все данные целиком
Посмотрел на типизированные массивы, для моих целей подойдет uInt32 (вмещает 4 млрд), но все равно много памяти потребуется, если помнить про то, что там еще дополнительно сколько-то байт навешивается (как говорил Сергей). 4e9 * (4 + 8) = 48000000000 бит = 6 гигов. В принципе, уже лучше, но все равно очень много. Видимо, нужно распиливать данные, 4 млрд слишком много, чтобы с ними вот так просто работать, тут вы правы
Посмотрел на typedArray, дл моих целей подойдет uInt32, но все равно много памяти потребуется, если помнить про то, что там еще дополнительно сколько-то байт навешивается. 4e9 * (4 + 8) = 48000000000 бит = 6 гигов. В принципе, уже лучше, но все равно очень много. Должен быть какой-то способ сделать это и не тратить столько памяти
ArrayBuffer, как я понимаю, новая тема. Раньше про нее не слышал. В любом случае выходит, что простой тип number для этого не годится. В спеке нашел только то, что он 64 бита занимает, а про доп. 8 байт не увидел пока, но я тоже слышал что-то подобное.
https://dotnet.microsoft.com/apps/aspnet - это оно? там если нажать Download, появится .NET Core 3.1 для Линукса. Я так понимаю ASP.NET Core уже в нем содержится?
Сергей Соколов
Да, действия симметричны. Я не сразу это увидел, поскольку задание мне было поставлено в не самом удобочитаемом виде. Пришлось составить таблицу и расписать все действия для кадого условия, и только тогда я увидел симметрию. Сей факт + ваш совет позвоилили мне значительно сократить код.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.