二分搜索和深度优先搜索有什么区别

时间:2013-03-26 15:22:56

标签: depth-first-search

二进制研究执行通常会导致内存泄漏问题,尽管它比线性搜索更快。 这两种搜索方法,深度优先搜索和二分搜索,更适合搜索随机数。

2 个答案:

答案 0 :(得分:0)

深度优先搜索是这里的答案。由于二进制搜索的性质,二进制搜索不能搜索随机数(在树中或其他地方),只能搜索已排序的数字。你会看到,在一个刻板的二元搜索中,分析了中间值(或树的根)。如果目标值较高,则选择搜索域的后半部分,如果数字较低,则选择前半部分。然后在选择的一半上递归地执行搜索。因此,二进制搜索在随机排序的值列表中根本不起作用。因为回答这个问题,我不会详细介绍DFS的细节。我确信它上面有一个好的WIKI。

答案 1 :(得分:0)

二进制搜索不是对随机数进行排序的最佳选择。

二进制搜索是一种搜索算法,它通过获取中间元素或根节点的值来查找元素,并将数据结构中的所有其他值与其进行比较。它必须以排序的数据结构开始。如果另一个数字小于中点,则数据结构的下半部分将变为完整结构,并且在下半部分将找到中点。如果另一个数字高于中点,则对数据结构的上半部分执行相同的过程。重复此过程,直到找到该值或两半交叉。

深度优先搜索是一种搜索和遍历算法,可在回溯之前沿路径尽可能远地访问树或图形数据结构中的节点。它使用堆栈来跟踪正在访问的节点的所有相邻节点,然后继续访问其所有邻居,直到那些也被视为已访问的邻居为止。在访问了路径上的所有节点之后,该算法使用堆栈回溯。

DFS将是搜索随机数的最佳选择,因为二进制搜索的先决条件是首先对其进行排序。如果数字未排序,则会违反算法的目的。 DFS将能够以O(V + E)时间复杂度找到随机数结构中的值。