我想在陣列(未排序)中找到最小的差異 c 只是 nlogn 時間復雜度;只是 nlong 時間復雜性。我認為我們需要使用合并排序演算法或更改它。示例:輸入=>[10, 30, 89, 120, 88, 3000, 5]
輸出=>1
uj5u.com熱心網友回復:
當然,您可以對兩個陣列進行排序 O(nlogn) 并比較它們 O(n) 以找到您的專案。不過,您也可以使用QuickSelect演算法 O(n) 來查找陣列中的第 [n/2] 項。那么你的陣列將被分成兩部分,前半部分的專案小于后半部分的專案。現在比較兩個陣列中前半部分和后半部分的總和,并在不相等的兩半上遞回繼續演算法。在平均情況下,它將是 O(nlogn)。
uj5u.com熱心網友回復:
首先,使用歸并排序(O(nlogn) 復雜度)對陣列進行排序。然后使用回圈運行每對相鄰單元格之間的最小差異
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/329568.html
上一篇:函式指標迭代器上的非法運算元錯誤
