gpt4 book ai didi

algorithm - 有效维护 list

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:34:31 25 4
gpt4 key购买 nike

我有一个很大的 list 。我可以从这个列表中添加/重新排列/删除项目。由于列表确实存在错误,我不想将整个列表的快照存储在系统中的任何位置。相反,我维护一个 xml 文件来跟踪添加/移动的项目。

每个项目都与索引和变更顺序相关联。
Def- Change order: 添加/移动项目的顺序。
Def- Index: 添加/移动项目的索引。

所以现在每当我需要显示列表时,我都会有我的原始列表和 xml 文件。我将使用 xml 文件,我将根据变更单添加/移动项目。

每当我想从列表中移动/删除任何项目时,我必须更改其他项目的索引。

为此我使用了简单的代码:

for each item in list: 
If item's change order > removed/moved item's change order:
Do Item's CO = item's CO - 1
If item's index > removed item's index (This index is not actual index,
is the index where we inserted
/moved the item. Item's actual
index can be different, because
of the movements of other items
in the list)
Do Item's index = item's index - 1

此代码在许多情况下都会失败。对于前。

原始列表(S、D、G、Y、U、I)

在我的 xml 中有

X: (newly added) CO 1, index 5
Giving me: (S, D, G, Y, X, U, I)
Y: (already in list at position 4) CO 2 index 6
Giving me: (S, D, G, X, Y, U, I)

在我的实际列表中:

X: pos: 4 
Y: pos: 5

现在我想根据代码删除X.
Y:CO 1 指数5

将其应用于原始列表:(S, D, G, U, Y, I)

这是错误的!

是否有针对此类要求的正确现有算法?

谢谢....


我无法将文件存储在数据库中。原始列表有可能发生变化。对于前。基本列表是(p,q,r)。 xml 是:(将 x 添加到第 2 个位置,将 y 添加到第 4 个位置,将 Q 移动到第 4 个位置)。但是我的基本列表有可能变成 (w,p,r,g,h) 并且我必须使用相同的 xml 文件(将 x 添加到第 2 个位置,将 y 添加到第 4 个位置,将 Q 移到第 4 个位置) 以便将新元素添加到预期位置。如果某些项目(如 Q)不在基本列表中,但在 xml 中,我必须忽略该 xml 节点。

最佳答案

它没有解决您的算法问题,但是您可以将您的列表存储在数据库中吗?您可以使用基于文件的 DBMS,例如 SQLite,它使用起来非常简单。

在我看来,您所描述的操作可以通过一些简单的 SQL 语句轻松完成。

编辑:MySQL 改为 SQLite

关于algorithm - 有效维护 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4936329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com