最近,我面临着必须存储许多版本的问题。内存中的数组(想想撤销系统或版本控制中的文件更改 - 但也适用于其他地方)。
如果不清楚:
我已经考虑过编写自己的解决方案,原则上这可以很简单地完成:
当数组长度发生变化或数据重新排序时,事情变得更加复杂。 然后,花费多少时间来搜索重复的块(在我的情况下,我在每个块的开头散列了一些数据以帮助识别候选者使用)。
我已经让我的实现工作(如果它有用,可以链接到它,但我宁愿避免讨论我的特定代码,因为它会分散一般情况)。
我怀疑我自己的代码可以改进(使用久经考验的内存散列和搜索方法)。可能我没有使用正确的条款,但我无法在线查找有关此搜索的信息。
所以我的问题是:
哪种方法最有效地识别和存储共享某些连续数据的数组?
是否有已知的工作方法被认为是解决此问题的最佳方法?
更新,写了一个小的(ish)单个文件library和tests,以及一个Python reference version。