【问题标题】:Best data structure for version control版本控制的最佳数据结构
【发布时间】:2018-04-29 13:07:53
【问题描述】:

我有一个 10^7 512 位元素的动态数组,其中的元素可以添加、删除和相互交换。每次,用户操作数组时,我都想以节省空间的方式记录更改,这样我就能够获得最终版本,而无需评估所有以前的版本。哪种数据结构最好?

一种昂贵的方法是存储数组的所有版本:

[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

有没有节省空间的替代方案来解决这个问题?!
谢谢!

【问题讨论】:

  • 串联散列
  • 你能帮帮我吗?
  • 是哪种语言。您的标签涵盖所有内容。平台也很重要...
  • 我的语言是python
  • 如果您的语言是 Python,请不要添加 JavaScript 或 C++ 标签。您将吸引反对票(负面关注),而不是从添加不相关的标签中获益。

标签: python arrays data-structures


【解决方案1】:

尝试将您的数据保存在文本文件中(即末尾有换行符)。

并使用 git/svn(任何 SCM 系统)来跟踪版本更改。

如果你能够用有意义的文件名将大量数据分成多个小块数据,你会发现 git/svn 会帮到你很多。

【讨论】:

    猜你喜欢
    • 2011-05-06
    • 2011-10-15
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2015-08-12
    • 1970-01-01
    相关资源
    最近更新 更多