搜索方法有:顺序搜索法(即链表搜索法)、二分搜索法、二叉树搜索法、哈希表搜索法、TRIE树搜索法。

其中,链表搜索法的搜索速度为深度。

可见,按时间复杂度来衡量各种搜索方法的搜索速度,则可以得到如下搜索速度排序:

哈希表 > TRIE > 二叉搜索树 > 二分搜索法 > 链表搜索法

但是,时间复杂度仅仅是搜索速度的一种衡量标准而已,并不一定能真正体现各种搜索法对应于特征词库下的搜索速度排序。例如,如果具有很小的系数的时间复杂度为的二叉树搜索法的搜索时间。

二叉搜索树之所以优于二分搜索法,是因为前者可以解决后者不适用的情况,例如:二分搜索法不适用于那些数据值在运行时才能确定的场合(如编辑器符号表),因为有序数组对于表的插入和删除操作是一种低效工具。

另外,TRIE的搜索过程如下图所示:

其中,层数I不易被确定,根据不同的词库,同一个单词对应的层数可能不同;而且长的单词对应的层数不一定多。这也是为什么这里用一个参数I来代替层数,而没有一个具体的公式的原因了。

TRIE树查找一个字符串的最差的时间复杂度是O(I),这时未必就比二分搜索法好。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-31
  • 2021-10-03
  • 2021-09-17
  • 2021-07-13
  • 2021-06-30
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案