我有一个由10^7512位元素组成的动态数组,其中的元素可以添加、删除和相互交换。每次用户操作数组时,我都希望以节省空间的方式记录更改,以便能够获得最终版本,而无需评估所有以前的版本。这样做最好的数据结构是什么?
一种开销很大的方法是存储数组的所有版本:
[1,5,7,3,8,2]
[1,4,5,7,3,8,2]
[1,5,4,7,3,8,2]
[1,4,5,3,7,8,2]
[2,4,5,3,7,8,1]另一种方式(这将需要计算每个版本以找到当前状态):
[1,5,7,3,8,2]
Add 4 between 1 and 5
Switch 4 with 5
Switch 3 with 7
Switch 1 with 2有没有一种节省空间的替代方案来解决这个问题?!
谢谢!
发布于 2018-04-29 13:07:54
尝试将数据保存在文本文件中(即末尾有换行符)。
并使用git/svn (任何SCM系统)来跟踪版本更改。
如果你能够用有意义的文件名把你的大数据分成多个小的数据块,你会发现git/svn会给你很大的帮助。
https://stackoverflow.com/questions/50083466
复制相似问题