On Wednesday, 9 February 2022 at 10:03:21 UTC, MichaelBi wrote:
day6 of the advent of code 2021 needs to handle an array of 10^12 length, or even bigger... plus change elements and append elements. normal implementation such as length, appender and ref element etc, seems cannot handle that big array? is there any alternative data structure or algorithm can handle such large array properly? thanks.

Use a memorymapped file that holds the array values, in theory it can be infinite then.

Since an array has a known size for each entry then you can treat the file as an array.

Let's say you have an array of ints.

For a memorymapped file you obviously only have bytes to work with, so each entry will be 4 bytes, since a 32 bit integer (int) is 4 bytes.

So to read something at a specific index you simply do N x I where N is the size of the type and I is the index you want to read at.

Otherwise the size of an array cannot exceed the RAM you have, if your system can't use diskspace as RAM of course.

Reply via email to