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

9. 搜索

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

演示: GTS流量×××和CAR流量监管的效果及相关实践计划

演示: GTS流量和CAR流量监管的效果及相关实践计划演示目标:1 理解clock rate(时钟频率)和bandwidth(带宽)与接入速率的关系2 在模拟运营商的接入路由器ISP上配置CAR监管用户流量到认购速率64K3 取证模拟的企业网络以128K的接入速率…

给所有的交叉编译工具创建软链接

给所有的交叉编译工具创建软链接 #!/bin/bash #给所有的交叉编译工具创建软链接echo "正在给所有的交叉编译工具创建软链接..." filenamsls arm-linux-gnueabi-* #获取当前文件夹下的所有以arm-linux-gnueabi-文件名开头的文件名 cont0 #记录软链接完成个数…

写在前面

硕士毕业在即,我的纯CV之路即将开始,老师提到了潜在的研究方向,一个全新的领域,可以说是新的起点。未来四年,我要想不碌碌而为,不像硕士期间一样“泛泛而学”,我必须从理论到实践都做好非常扎实…

httpclient封装获取响应实体_Httpclient 接口自动化

好久木写啦!!!好久木写啦!!!心血来潮分享点小白的东西!!!废话少说直接干货!!!本文核心是将如何从数据驱动开始,以报告结尾…

服务器控件开发之基本概念

利用ASP.NET 2.0技术,创建Web自定义服务器控件并不是一件轻松的事情。因为,这需要开发人员了解并能够灵活应用多种Web开发技术,例如,CSS样式表、客户端脚本语言、.NET开发语言、服务器控件开发技术,甚至是当前最火的AJ…

如何在Django模板中注入全局变量

我们在做一些网站项目的时候,可能会遇到需要把某个全局变量注入到所有页面的情况,比如我们做一个在线商城,那么可能需要将用户的资料:比如用户的账号、用户的姓名等注入到每个页面里面。但是如果用常规的方法,也就是在…

JavaScript 定时器

setInterval 每隔time时间后执行内部代码,后边改的time时间并不起作用 var time 2000; var obj setInterval(() > {}, time);//obj 返回的是一个数字,作为唯一标识time200; //不起作用clearInterval(obj) //清除计时器setInterval("console.…

Ubuntu18.04更换为国内源

Ubuntu18.04更换为国内源 1、打开Linux终端,执行下列命令,将源文件备份,以防万一。 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2、选择下列任意一个源,将其复制 ​ 2.1 阿里源 deb http://mirrors.aliyun.com/…

如何关闭大疆gps_如何使用djisdkforwindows从mavic 2获取gps数据?

我使用windows sdk。我正在尝试使用以下方法获取gps数据:var flightControllerHandler _djiManagerInstance.ComponentManager.GetFlightControllerHandler(ProductIndex, ComponentIndex);flightControllerHandler.AircraftLocationChanged - QuadcopterOnAircraftLocationCh…

跨线程访问控件

【转帖】 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。 首先来看传统方法: public partial class Form1 : Form { public Fo…

解析Nginx负载均衡

摘要:对于一个大型网站来说,负载均衡是永恒的话题。随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP、Citrix NetScaler、Radware等等,虽然可以解决问题,但其高昂的价格却往往令人…

基于vue+mint-ui的mobile-h5的项目说明

基于vuemint-ui的mobile-h5的项目说明转载于:https://www.cnblogs.com/ysx215/p/10768656.html

Ubuntu20.04更换为国内源

Ubuntu20.04更换为国内源 1、打开Linux终端,执行下列命令,将源文件备份,以防万一。 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2、选择下列任意一个源,将其复制 ​ 2.1 阿里源 deb http://mirrors.aliyun.com/…

深圳办理cdn经营许可证_深圳危化品经营许可证申请流程怎么申请?办理危化学品经营许可证...

随着深圳地区慢慢的进入了产业整合和城市规划规范化的运营中,很多涉及到生产的公司都逐渐被有效的整合在一起了,而随着深圳地区越发有效的整合生产规划,很多地区都逐渐的在将涉及到危险化学品生产和经营的企业都进行合理的管制,在…

Discuz!NT 缓存设计简析 [原创]

作为一个社区类型软件,大并发支持和高效稳定运行永远是“硬道理”,而有效安全的使用缓存恰恰能起到事倍功半的效果。而.NET本身所提供的缓存机制又显得过于“单薄”,比如说订制不太灵活方便, 缓存对象之间层次感不强, 使用时缺乏统一的管理等…

实验七:Xen环境下cirrOS的安装配置

实验名称: Xen环境下cirrOS的安装配置 实验环境: 这里的cirrOS和实验六中的busybox的启动方式相同,唯一的区别就是我们使用的cirrOS镜像中,已经包含了根文件系统、内核文件以及ramdisk和grub程序; 只需要我们使用xen环…

携程SQL面试题忘大牛解答解决思路

讨论地址:http://bbs.csdn.net/topics/380208742

VSCode从下载到配置Ubuntu系统

Visual Studio Code从下载到配置Ubuntu系统 一、下载和安装Visual Studio Code 1、进入Visual Studio Code官网(Visual Studio Code - Code Editing. Redefined),点击箭头所指地方下载红框内的安装包; 2、因为是国外网址下载&am…

python 写入excel 日期_Python实例:excel文档写入操作

来自PythonABC.org老师的课程很好,但是每个视频都蛮长的,听着听着就有些晕乎,所以根据视频自己整理了一下,以便记录学习使用Python实现excel的文档写操作import openpyxl from openpyxl.utils import get_column_letterwb openpy…

Windows软件调试学习笔记(1)

——WINDBG中的表达式 WINDBG接受两种表达式,C表达式和MASM表达式。 1、 MASM表达式中的数值: MASM表达式中的数值可以基于16,10,8,2四种进制。用n命令可以设置WINDBG的缺省进制,如果没有设置过则默认为16。…