我不是真的進入基礎算法編程,所以這是我的問題。我想創建一個算法,可以填充循環緩衝區,但它必須從緩衝區的末尾開始。我試圖做很多小時沒有成功,所以我要求你的幫助。逆循環緩衝區
我知道原來的算法由緩衝區的開頭開始: I =(I + 1)%buffLen
但我想要的東西,把東西從buffLen-1爲0,而當它到達0,它從buffLen-1開始。
我知道這可以做一個條件,但我敢肯定有一個公式可以做得更快,更乾淨。
我需要它在最後通過一個對象數組無限地迭代。
對不起,我的英語不好。
我不是真的進入基礎算法編程,所以這是我的問題。我想創建一個算法,可以填充循環緩衝區,但它必須從緩衝區的末尾開始。我試圖做很多小時沒有成功,所以我要求你的幫助。逆循環緩衝區
我知道原來的算法由緩衝區的開頭開始: I =(I + 1)%buffLen
但我想要的東西,把東西從buffLen-1爲0,而當它到達0,它從buffLen-1開始。
我知道這可以做一個條件,但我敢肯定有一個公式可以做得更快,更乾淨。
我需要它在最後通過一個對象數組無限地迭代。
對不起,我的英語不好。
嘗試
i = (i + buffLen - 1) % buffLen;
它不會是任何比更有效的(或者甚至那樣有效)的if..else
構建體,但它是模擬到所述一個線分配用於在正方向上移動。
更快?我懷疑你會發現任何差異。清潔器?我幾乎可以肯定,一個神祕的神祕公式將比一個簡單的if(i ==(bufLen - 1))i = 0'更難讀。這有什麼問題? (順便說一下,你是一個完美的例子,說明如何使用神祕的「公式」:你說你知道如何用if來做,但是你無法自己找到與模塊化算術等價的表達式...) –