gpt4 book ai didi

c# - 性能 : which is faster calling reverse on a stack or popping items into an array

转载 作者:太空宇宙 更新时间:2023-11-03 20:45:33 24 4
gpt4 key购买 nike

我想知道哪种实现会有更好的性能:

我需要清除堆栈中的所有项目,除了头部的前 10 个项目。

然后这 10 个必须按其原始顺序放入堆栈。

我想到了两种方法

第一个:

FilterRecord[] records = new FilterRecord[10];

for (int i = 0; i < records.Length; i++)
{
records[i] = _InternalCollection.Pop();
}

_InternalCollection.Clear();

for (int i = records.Length - 1; i >= 0; i--)
{
_InternalCollection.Push(records[i]);
}

第二个:

int count = _InternalCollection.Count - 10;
_InternalCollection.Reverse();


for (int i = 0; i < count; i++)
{
_InternalCollection.Pop();
}

_InternalCollection.Reverse();

欢迎任何帮助或指导或其他问题。

最佳答案

您的第一个算法有两个 for 循环,所以 O(2N)。您的第二个算法有一个 for 循环,但我们必须假设 Reverse() 在内部是一个 O(N) 操作,因此它的 O(3N)。

我不确定在您的第一个算法中 Clear() 调用是 O(N) 还是 O(C)。

关于c# - 性能 : which is faster calling reverse on a stack or popping items into an array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014422/

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