Algorithm 复杂性是N还是N^2?

Algorithm 复杂性是N还是N^2?,algorithm,sorting,time-complexity,Algorithm,Sorting,Time Complexity,我在解决一个问题,我必须从排序的数组中创建一个唯一的数组,它可以有重复的元素 我使用以下代码解决了这个问题: for (int i = 0; i < sorted.Length - 1; i++) { if (sorted[i] == sorted[i + 1]) { unqiueList.Add(sorted[i]); int j = i + 1; while (j < sorted.Length) {

我在解决一个问题,我必须从排序的数组中创建一个唯一的数组,它可以有重复的元素

我使用以下代码解决了这个问题:

for (int i = 0; i < sorted.Length - 1; i++)
{
    if (sorted[i] == sorted[i + 1])
    {
        unqiueList.Add(sorted[i]);
        int j = i + 1;
        while (j < sorted.Length)
        {
            if (sorted[i] != sorted[j])
            {
                break;
            }
            j++;
            i++;
        }
    }
    else
    {
        unqiueList.Add(sorted[i]);
    }
}
for(int i=0;i
现在,我想知道这个解决方案的复杂性

有人说是N,但有人说是N^2。它提醒我为什么不向堆栈溢出提出同样的问题,以便更好地理解它。

最糟糕的情况是
O(N)

这有点令人讨厌,但考虑到
i
j
循环中的每次迭代都是递增的,而
循环中基本上没有循环

该算法不允许超过
排序的.Length
的迭代次数


有趣的是;这表明while循环可以替换为
if
语句(可能不是一个简单的语句),但这将是一个很好的练习。

最坏的情况是
O(N)

这有点令人讨厌,但考虑到
i
j
循环中的每次迭代都是递增的,而
循环中基本上没有循环

该算法不允许超过
排序的.Length
的迭代次数



有趣的是;这表明while循环可以替换为
if
语句(可能不是一个简单的语句),但这将是一个很好的练习。

“排序数组中的唯一数组”听起来好像应该使用Random()进行随机输出。还是你还在整理?除非您将其作为一项任务,否则通常可以使用数组并列出排序函数。@Christopher-对于唯一数组,我的意思是数组具有唯一的元素,并且其中没有重复的元素。“排序数组中的唯一数组”听起来像是您应该使用Random()进行随机输出。还是你还在整理?除非您将其作为一项任务,否则您通常可以使用数组并列出排序函数。@Christopher-对于唯一数组,我的意思是数组具有唯一的元素,并且其中没有重复的元素。