1

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

4

2 回答 2

0

深度优先搜索就是这里的答案。由于二进制搜索的性质,二进制搜索不能搜索随机数(在树或其他地方),只能搜索排序数字。你看,在典型的二分搜索中,中间值被分析(或树的根)。如果目标值较高,则选择搜索域的后半部分,如果数字较低,则选择前半部分。然后在选择的任何一半上递归地执行搜索。出于这个原因,二分查找在随机排序的值列表上根本不起作用。因为这个问题得到了回答,所以我不会深入讨论 DFS 的细节。我确信上面有一个很好的 WIKI。

于 2013-03-26T15:48:17.073 回答
0

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

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

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

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

于 2020-04-23T02:24:31.070 回答