gpt4 book ai didi

c# - 在数组内移动数组段

转载 作者:行者123 更新时间:2023-12-02 08:40:42 25 4
gpt4 key购买 nike

如果我有一个项目数组:

1, 2, 3, 4, 5, 6, 7, 8

我想选择一系列项目并将它们移动到数组中的另一个位置。例如:

1, 2, 5, 6, 7, 3, 4, 8

此处 5、6、7 段已移至索引 2。

执行此操作的最有效方法是什么,特别是限制额外数组副本的数量。我有一个可用的版本,但它效率低下并且在我试图优化的算法中扮演着核心角色。

谢谢。

最佳答案

尝试使用链表。由于您正在移动列表的子部分,因此移动子列表两端的引用比复制同一子列表中的每个单独项目的内存效率更高。总体时间复杂度是相同的(Θ(n) 遍历链表,Θ(n) 复制数组段),但是你会有更好的内存复杂度(常量 n 而不是 Θ(n))和持续内存分配/释放的问题更少。

关于c# - 在数组内移动数组段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16847064/

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