文章詳情頁
算法 - 用代碼獲取流程走向(Java)
瀏覽:132日期:2024-01-10 18:17:14
問題描述
需求是這樣的,有很多類似的流程如下:
有一個(gè)函數(shù),我傳入一個(gè)開始節(jié)點(diǎn)Node,能夠獲取所有的流程走向,包裝List返回,比如上面這張圖就有兩種走向:通過和不通過。我開始用遞歸來做,類似這樣:
測(cè)試了幾個(gè)流程,確實(shí)能達(dá)到效果,但是一遇到復(fù)雜的流程(上百種走向)的時(shí)候,遞歸就會(huì)有性能問題(棧溢出等)請(qǐng)問各位大神,像這種情況除了遞歸還有什么解法嗎?如果沒有,這種遞歸有哪里可以優(yōu)化的地方?小弟能力有限,想了幾天沒啥好辦法....
問題解答
回答1:問題是遞歸的,實(shí)現(xiàn)未必要用遞歸。可以把 '還未搜索的Node' 放到一個(gè)List中,每次找到的新Node放到List最后,下一輪搜索開始時(shí)從List最后取。
還應(yīng)當(dāng)使用動(dòng)態(tài)規(guī)劃減少重復(fù)搜索。完全搜索時(shí)這個(gè)問題是NP的。
回答2:這個(gè)是工作流吧????
標(biāo)簽:
java
相關(guān)文章:
1. vue ajax請(qǐng)求回來的數(shù)據(jù)沒有渲染到頁面2. Echart X坐標(biāo)軸名稱放在左邊與Y坐標(biāo)抽刻度重疊,如何解決?3. docker綁定了nginx端口 外部訪問不到4. mysql - sql語句如何按照時(shí)段分組5. java - spring-security與微信登錄的問題?6. mysql - 數(shù)據(jù)庫分表分庫的問題?7. 如何合并兩張具有相同結(jié)構(gòu)的mysql表8. mysql - 用這種方式重新命名數(shù)據(jù)庫安全嗎?9. mysql語句編寫10. mysql優(yōu)化 - mysql如何防止全表更新
排行榜

熱門標(biāo)簽