我了解Breadth First Search
和Depth First Search
。我看了this page,而且在SO上,我也发现了this question和this question。
我想知道的是一些实用的场景,我会首先使用深度搜索广度。虽然我提供的第三个问题链接有点类似,但我的问题更适合t-sql
和SQL Server 2008/2012
表现。
另外,如果我使用其他人可以向我展示一个例子,我可以拥有多少(最坏情况)性能影响?比方说,如果我采用dfs
,并且我在第一个节点有50个孩子,而我正在搜索第二个节点,那么dfs
将比我想象的慢50倍,因为它会首先必须横向50个孩子,然后它将来到第二个节点。是这样吗?我的意思是,就像这种直接的关系,还是其他表现呢?
最后,再次重复我的问题,虽然它可能(很可能会是)应用程序和需求特定,但我想知道一些实际情况,我将使用一个而不是另一个,以及可能的性能成本选择一个而不是另一个?另外,我维护一个类别目录应该选择什么?说,我正在维护书籍类目录,例如:science => physics => astronomy
等等,哪一个最好? dfs
或bfs
?
答案 0 :(得分:0)
你几乎回答了自己的问题。根据数据,使用最有可能首先访问所需节点的搜索方法。