欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Tekson的数据结构程序9——搜索

发布时间:2023/12/13 编程问答 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Tekson的数据结构程序9——搜索 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

9. 搜索

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

其中,链表搜索法的搜索速度为;二分搜索法与二叉树搜索法的搜索速度为;哈希表的搜索速度为TRIE树搜索法的搜索的时间复杂度为,其中ITRIE树的层数/深度。

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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/tekson/archive/2009/11/09/1599354.html

总结

以上是生活随笔为你收集整理的Tekson的数据结构程序9——搜索的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。