1
我想查看是否有任何替代蛮力算法(或稍有改善/最差表现的幼稚发现不同的值蛮力算法)仍然会导致O(N^2)时间复杂度和O(1)辅助空间。替代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
我知道蛮力算法是一个可怕的解决方案,有(使用的数据集或实现Ø实现更好的性能的许多方面(N)的时间复杂度和O(1)空间复杂度),但出于纯粹的兴趣,我试图找到O(N^2)最坏情况下的时间复杂度和O(1)空间复杂度。它甚至有可能吗?我认为我可以应用排序算法(例如Bubble或Insertion排序),然后使用for循环遍历排序后的数组,但是仍然会给我一个二次函数而不是O(N^3 )?
谢谢你的快速反应!我的问题,但是,因为我寻找替代一个很奇怪的一个精确O(N^2)的时间复杂度的替代蛮力,而不是一个更好的解决方案。 – qwerty
选择排序或插入排序就可以了就好了呢。更新了答案。 –
太棒了,谢谢!在这种情况下,我不太确定我的想法是否正确! – qwerty