我是大O符号的新手,在我的程序中有一些关于它的问题。
我有一个有2张地图的程序。在添加到其中一个地图之前,我循环遍历每个角色并随机更改套管。 我只是将字符串放入另一个地图(无操作)
如果插入地图的大O是O(1),那么如果我在将每个字符放入地图之前循环遍历每个字符是什么? 这个程序的大O复杂度是多少(将每个插入组合到地图中)?
答案 0 :(得分:2)
如果您有一个大小为n的字符串并且迭代它,在内部循环中执行O(1)插入,则时间复杂度为O(n)。
为了使这一点变得微不足道,假设插入成本 a (其中 a 可能是n的函数,常量或其他完全不同的函数),那么总计成本是O(an + a)。这是因为你在内循环中插入n次,然后在整个字符串中再插入一次。在你的情况下,a = 1,所以我们有O(1n + 1)= O(n)。