std::unordered_map
此算法的时间复杂度是多少?是O(n * n)吗? 这是geekforgeeeks网页上的问题。您如何处理else语句中的循环?
答案 0 :(得分:0)
将代码分成多个部分,找到每个部分的运行时。
外部for循环为O(n)。
每次调用该循环时,都会调用while循环。因此,您将乘以两个循环的复杂性。
要弄清楚while循环的运行时间,必须查看if和else块。如果if块每次都运行,则while循环将具有O(n)复杂度。如果else部分每次都运行,则while循环将具有O(n ^ 2)复杂度。
如果我们考虑最坏的情况,那么您将忽略if块运行时。因此,while循环的运行时为O(n ^ 2),它通过外部for循环被调用n次。
因此,所有运行时都应为O(n ^ 3)。