UPD:我搬到原來的問題,以https://codereview.stackexchange.com/questions/127055/building-tree-graph-from-dictionary-performance-issuesPHP的前綴樹實現還是assoc命令陣列
這裏是一個短版,無碼。
我想從字典中建立一個前綴樹。因此,使用以下字典'and','anna','ape','apple'
,圖應如下所示: 我試過2種方法:使用關聯數組並使用自寫的樹/節點類。
注意:原始字典約8 MB,包含> 600000字。
問題:有什麼好的(快速/高效)的方式來做到這一點?
我試過到目前爲止:
PHP關聯數組(它們不是與此圖今後的工作非常靈活)。
自寫的Tree/Node類(性能問題 - 執行時間上升高達7倍,內存使用量增加2倍,即使沒有實現任何內容,除了
inserting
函數)。
示例代碼可在代碼審查(有問題的第一個鏈接)
它們都具有相同的代碼/執行復雜性,而不是相同的內存佔用空間和執行速度。根據PHP版本的不同,你可以使用更多或更少的內存。如果你正在尋找更好的表現,而不僅僅是學習東西,我會建議尋找嵌套。你會發現準備使用PHP的實現:http://stackoverflow.com/questions/272010/searching-for-the-best-php-nested-sets-class-pear-class-excluded –
這個問題更適合[代碼審查](http://codereview.stackexchange.com) – nickb
@Sergiu Paraschiv - 我會調查它 – haldagan