0 1 2 3 4 5 6 7 8 9 0 X X X X X X X - X X X - X X X X - X - X X X - X - X X X X - X - X - X X X - X - X - X X X X - - - X - X - X X when 4 in a row, delete 2nd 0 1 2 3 4 5 6 7 8 9 0 1 1 1 1 1 1 2 - 1 1 2 - 1 1 1 2 - 2 - 1 1 2 - 2 - 1 1 1 2 - 2 - 2 - 1 1 2 - 2 - 2 - 1 1 1 3 - - - 2 - 2 - 1 1 3 - - - 2 - 2 - 1 1 1 3 - - - 2 - 2 - 2 - 1 1 3 - - - 2 - 2 - 2 - 1 1 1 3 - - - 3 - - - 2 - 2 - 1 1 3 - - - 3 - - - 2 - 2 - 1 1 1 3 - - - 3 - - - 2 - 2 - 2 - 1 1 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 1 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1 1 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 1 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1 1 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 1 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1 4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1 4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1 4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 1 1 1 4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 4 - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 3 - - - 2 - 2 - 2 - 1 1 1 5 - - - - - - - - - - - - - - - 4 - - - - - - - 4 - - - - - - - 3 - - - 3 - - - 2 - 2 - 1 1 The amount of data used, compared to data requested to save... is at most 3 * log2(n) In other words, you can "save" 10000 data points, and have the algorithm back up only 3 * log2(n) of them This means that... we can back up the server. Every hour. Every day. For 40 years. And only use 20 storage slots Problem is that inserting a new element may cause a chain reactin where data gets deleted and deleted. At worst case, it could be log(n) If deleting server backups take time... then we should probably run server backups asyncronously or at off-hours of the server time Still, this backup method is incredibly helpful. 2^n / 3