[英]Big O of list resize
这个问题适用于所有语言,但让我坚持使用C#
var names = new List<string> {"Jerry", "Cosmo", "Elaine", "George"};
这是我的编译时间清单。 如果我决定在其中插入记录,则.NET底下的长度会从4倍增加到8。
names.Insert("Newman");
上面的此插入方法的Big-O会变成O(N)吗? 其中N作为列表的长度? 如果是,大多数访调员真的在乎吗?
编辑
可以说我们正在插入1000条记录。.长度将在4、8、16、32处增加一倍。...所以插入复杂度对Log(N)是否正确?
该特定插入操作(列表大小加倍)的复杂度为O(N)。 但是 摊销后的复杂度仍然是O(1),因为该列表之前的N / 2
元素的大小没有增加一倍,因此每次插入的平均操作数仍保持不变。 面试官可能希望您意识到这种差异。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.