我的计算机科学II决赛是明天,我需要一些帮助,了解如何找到代码段的Big-Oh.我搜索过互联网,但未能找到任何我需要了解它的例子.
这是我们的样本决赛中的一个问题:
for(int pass = 1; i <= n; pass++)
{
for(int index = 0; index < n; index++)
for(int count = 1; count < n; count++)
{
//O(1) things here.
}
}
}
Run Code Online (Sandbox Code Playgroud)
我们应该找到算法的顺序(Big-Oh).
我认为这将是O(n ^ 3),这就是我得出这个结论的方式
for(int pass = 1; i <= n; pass++) // Evaluates n times
{
for(int index = 0; index < n; index++) // Evaluates n * (n+1) times
for(int count = 1; count < n; count++) // Evaluates n * n …Run Code Online (Sandbox Code Playgroud) 如果我有2个字符串列表
List<string> history = new List<string>(){ "AA", "BB", "CC", "AA" };
List<string> potentialNew = new List<string>(){ "CC", "AA", "DD", "EE", "FF", "AA"};
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来组合列表,同时防止"重叠"并保持相同的顺序.因此,在上面的示例中,将有一个组合列表:
AA, BB, CC, AA, DD, EE, FF, AA
Run Code Online (Sandbox Code Playgroud)
换句话说,只有DD,EE,FF和AA被添加到history列表中.
我一直试图解决这个问题几天,无数的搜索都没有解决问题.任何帮助将不胜感激!