單一的進化樹的數量會隨著分類群數量的增長而呈指數增長,從而變為一個天文數字。由于計算能力的限制,現在一般只允許對很小一部分的可能的進化樹進行搜索。具體的數目主要依賴于分類群的數量、優化標準、參數設定、數據結構、計算機硬件以及計算機軟件。
有兩種搜索方法保證可以找到最優化的進化樹:窮舉法和樹枝 跳躍法(BB)。對于一個很大的數據集,這兩種方法都很不實用。對分類群數量的限制主要取決于數據結構和計算機速度,但是對于超過20個分類群的數據集,BB方法很少會得到應用。窮舉法要根據優化標準,對每一個可能的進化樹進行評估。BB方法提供一個邏輯方法,以確定那些進化樹值得評估,而另一些進化樹可被簡單屏蔽。因此BB方法通常要比窮舉法快得多。
絕大多數分析方法都使用“啟發式”的搜索。啟發式現搜索出相近的次優化的進化樹家族(“島嶼”),然后從中得到優化解(“山頂”)。不同的算法用不同程度的精確性搜索這些島嶼和山頂。最徹底也是最慢的程序(TBR,tree bisection-reconnection,進化樹對分重接)先把進化樹在每一個內部樹枝處劈開,然后以任意方式將劈開的碎片重新組合起來。最快的算法只是檢查一下相鄰終端的不太重要的重新組合,因此傾向于找到最近的島嶼的山頂。
降低搜索代價的最好方法是對數據集進行剪除。影響優化搜索策略選擇的因素(數據量,數據結構,時間量,硬件,分析目的)太復雜,無法推薦一個簡單可行的處方。因此進行搜索的用戶必須對數據非常熟悉且有明確的目標,了解各種各樣的搜索程序及自己硬件設備和軟件的能力。
除上述當前應用最廣的方法外,還有大量的建立和搜索進化樹的其它方法。這些方法包括Wagner距離方法和親近方法(距離轉化方法);Lake的不變式方法(一個基于特征符的方法,它選擇的拓撲結構包含一個意義重大的正數以支持顛換);Hadamard結合方法(一個精細的代數方陣方法,對距離數據或者觀察到的特征符進行修正);裂解方法(這個方法決定在數據中應該支持哪一個基于距離的可選的拓撲結構);四重奏迷惑(Quartet puzzling)方法可以為ML建樹方法所應用,這個算法相對而言是個較快的進化樹搜索算法。