[英]Find missing numbers in array, time complexity O(N), space complexity O(1)
[英]Alternative O(N^2) time complexity with O(1) space complexity for finding distinct values in array
我正在嘗試查看是否有替代蠻力算法(或對朴素蠻力算法的輕微改進/最差性能)的替代方案,這些替代方案仍會導致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
我知道蠻力算法是一個糟糕的解決方案,有很多方法可以實現更好的性能(使用數據集或實現O(N)時間復雜度和O(1)空間復雜度),但是出於純粹的興趣,我試圖找出O(N ^ 2)最壞情況下的時間復雜度和O(1)空間復雜度。 可能嗎?
我以為我可以應用排序算法(例如Bubble或Insertion排序),然后使用for循環遍歷排序數組,但這是否仍會給我二次函數而不是O(N ^ 3)?
使用heapsort對數組進行排序,並在找到兩個相等的元素時停止:
您也可以尋找其他的(更先進的算法)用於此目的這里
選擇和插入排序是2種選擇,分別是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.