Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 备选方案O(N^2)时间复杂度和O(1)空间复杂度,用于在数组中查找不同的值_Arrays_Algorithm_Sorting_Distinct Values - Fatal编程技术网

Arrays 备选方案O(N^2)时间复杂度和O(1)空间复杂度,用于在数组中查找不同的值

Arrays 备选方案O(N^2)时间复杂度和O(1)空间复杂度,用于在数组中查找不同的值,arrays,algorithm,sorting,distinct-values,Arrays,Algorithm,Sorting,Distinct Values,我正在尝试看看是否有任何替代暴力算法的方法(或对原始暴力算法的轻微改进/最差性能),仍然会导致O(N^2)时间复杂度和O(1)辅助空间 这是我的暴力伪代码: procedure distinct(Input: array) for i=0 to i < length of array for j=i+1 to j < length of

我正在尝试看看是否有任何替代暴力算法的方法(或对原始暴力算法的轻微改进/最差性能),仍然会导致O(N^2)时间复杂度和O(1)辅助空间

这是我的暴力伪代码:

    procedure distinct(Input: array)                             
        for i=0 to i < length of array                      
            for j=i+1 to j < length of array                 
               if array[i] == array[j] and i != j then  
                  return false                        
               end if
               increment k
            end for
            increment j
        end for
        return true
    end procedure
过程不同(输入:数组)
对于i=0到i<数组长度
对于j=i+1到j<数组长度
如果数组[i]==数组[j]和i!=那么
返回错误
如果结束
增量k
结束
增量j
结束
返回真值
结束程序
我知道暴力算法是一个糟糕的解决方案,有很多方法可以实现更好的性能(使用数据集或实现O(N)时间复杂度和O(1)空间复杂度),但是出于纯粹的兴趣,我试图找到O(N^2)最坏情况下的时间复杂度和O(1)空间复杂度。有可能吗


我在想,我可能会应用排序算法(例如冒泡排序或插入排序),然后使用for循环遍历已排序的数组,但这是否仍然会给我一个二次函数而不是O(N^3)?

使用heapsort对数组排序,并在找到两个相等的元素时停止:

  • O(NLogN)时间复杂度
  • O(1)空间复杂性
您还可以为此寻找其他(更高级的算法)

选择和插入排序是两种备选方案,具有:

  • O(NxN)时间复杂度
  • O(1)空间复杂性

感谢您的快速响应!然而,我的问题是一个非常奇怪的问题,因为我正在寻找一种替代方法,以精确地替代O(N^2)时间复杂度,替代暴力,而不是更好的解决方案。选择排序或插入排序就可以了。更新了答案。太好了,谢谢!我不太确定在这种情况下我的想法是否正确!是的,您可以从该链接中选择任何具有O(N^2)时间复杂度和O(1)空间复杂度的配置。