O表示法中算法复杂度的顺序

0 algorithm time-complexity

谁能告诉我下面算法的复杂性顺序?该算法如下:

给定具有重复数字的未排序整数数组,编写最有效的代码以打印出数组中的唯一值.

我还想知道在这个实现的硬件使用情况下有什么优缺点

 private static void IsArrayDuplicated(int[] a)
    {
        int size = a.Length;
        BitArray b = new BitArray(a.Max()+1);
        for ( int i = 0; i < size; i++)
        {
            b.Set(a[i], true);
        }

        for (int i = 0; i < b.Count; i++)
        {
            if (b.Get(i))
            {

                System.Console.WriteLine(i.ToString());

            }
        }
        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

pav*_*kha 5

你有两个for循环,一个长度a.Length和一个长度(如果我正确理解代码)a.Max() + 1.所以你的算法复杂性是O(a.Length + a.Max())