怎樣將乙個24的n次方複雜度的計算優化

時間 2021-05-31 16:18:23

1樓:

可以大規模平行化,考慮乙個n位24進製數,它和你的乙個組合構成一一對應。

-------_-分割線-------

當然,這個特性事實上意味著,有時不必真的完成這個計算,只要在需要的時候直接使用對應的整數就可以得到相應組合的任意資訊。而那些整數已經在那裡了。

2樓:admin user

新的陣列就是有種,所以無論採用那個演算法都至少是這麼多,除非不完全生成。但如果n是變數,沒法像樓主那樣寫巢狀的for迴圈。

for(i=

0;i<

pow(24,

n);i++)}

3樓:byronhe

你遍歷所有的組合是為了什麼呢?找某種最優組合,還是計數,應該是有一些篩選條件的吧?這個可以看做狀態空間遍歷的過程,假如可以在遍歷過程中根據一些條件進行剪枝,或許是可以優化的,搜搜「分支限界法」,「回溯」,「A*演算法」等等,或許對你有啟發。

但是,如果你無論如何就是要生成所有組合,那沒什麼好說的了。

4樓:

我覺得對於這個問題應該優化需求而不是演算法,因為在不考慮原始陣列中包含重複元素的情況下,你想得到的陣列裡面就得有2的n次方個物件,不考慮其他情況,賦值至少得O(2^n)的時間複雜度。

為什麼 n 和 1000n 的時間複雜度相同?

李智 一 複雜度分析,本身是個估算法,不算出具體的時間。二 複雜度分析的是資料量的增長趨勢,就是增長的增長。三 1000的係數影響固定1000,在資料量為1000時,資料增長影響為1 1,在資料量1000萬以上時,在增長影響率不到萬分之一。所以在資料量足夠下,可以忽略。 cmershen 時間複雜度...

有哪些複雜度比 n 2 要小的來計算給定的 n 個序列中重複的系列的好的演算法?

根據問題需求可以有不同的方法。可以將每乙個序列對映 例如Hashing 到乙個可排序集合 例如乙個數字集合 然後排序對映後的集合,在排序的結果中一樣的序列就在一起了。預處理複雜度O NL 排序O NlogN 其中L是序列的最大長度,N是序列個數。例如 以前的序列是s1,s4,s3,s4,無論你採用什...

將乙個用很久複雜化程度高的系統GHost備份後,格式化C盤再重裝入,以此優化該系統,可行嗎(SSD)?

隨便扯兩句,個人覺得此方案不太好。系統效能優化其實是比較複雜的事情。如何優化關鍵點在於找到系統效能瓶頸。大的方面來說,CPU,記憶體和硬碟。CPU,記憶體的占用很好觀察 如果這個沒做,那就先看看吧 一般感覺系統慢了,很有可能是硬碟慢。硬碟慢有很多種原因,要分析起來比較複雜,因為你是 裡面裝入了200...