2011-04-29 75 views
5

在實現一個項目的背景下,我需要在PHP中找到k-最長的序列。有很多方法可以實現 - 但哪種算法對PHP來說是最快的?在一維數組中尋找k最長的序列?

你會採用哪種算法? (概述)

哪一個是最高效和動態的(數字,字符串等)? (快?,n元時間?)

你會如何實現它? (示例)

謝謝!


郵政Scriptum

我即將實現ONISI k最近neightbour算法。在這個示意圖中可以看到最長的序列。 The interaction history since t and the immediate history. 這個shematic簡要介紹了ONISI算法。 enter image description here

total/immediate-history-elements是表示$ state - > $動作模式的字符串。 這意味着,考慮到示意圖(1)的前3個元素,將顯示數據,例如:$immediate_history = array(array("s2" => "a2"), array("s3" => "a3"), array("s1" => "a1") [..]);

還有關於問題的任何問題嗎?

乾杯!

+2

你到目前爲止嘗試過什麼?另外,您不能用您提供的方式用PHP數組表示整個原理圖(1),因爲PHP數組鍵必須是唯一的。將它作爲一個子數組序列來做是一種選擇,例如:array(array(「s2」=>「a2」),array(「s3」=>「a3」),array(「s1」=> 「a1」),...)' – 2011-04-29 11:07:32

+0

該表達式不像查找k-最長序列的數組分析算法那麼重要,當然,它可能表示成這樣 - 但幾乎每個表示都可以實施成標準化算法。我改變了你的選擇後的例子。 我已經在試驗機智嘗試,但它似乎不適合實際的情況。 – 2011-04-29 11:10:23

+1

試試這個:http:// codegolf。stackexchange.com/ – 2011-04-29 23:02:48

回答

1

你會採用哪種算法? (概述)

KNN是variable-bandwidth, kernel density "balloon" estimator與統一的內核

哪一個是最有效的和動態的特例(數字,字符串,等等)? (快?,時間爲n-elems?)

我依賴於你的數據結構。一個數組明顯較慢。但是使用更好和更先進的結構會加快速度。

你將如何實現它? (例子)

我非常懷疑任何人會給你這個這個程序是不是一個小的。你必須自己做。

相關問題