首页 > 代码库 > 以前的专利
以前的专利
离开嵌入式行业有两年了,今天看到了自己在以前公司申请的专利。
公开号 | CN102750389 A |
发布类型 | 申请 |
专利申请号 | CN 201210229268 |
公开日 | 2012年10月24日 |
申请日期 | 2012年7月4日 |
优先权日 | 2012年7月4日 |
发明者 | 任小伟 |
申请人 | 厦门亿联网络技术股份有限公司 |
CN 102750389 A
一种嵌入式设备的高效搜索方法
技术领域
[0001] 本发明涉及一种嵌入式设备的高效搜索方法。
背景技术
[0002] 嵌入式设备主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的“器件”。嵌入式处理器主要由一个单片机或微控制器(MCU)组成。相关支撑硬件包括显示卡、存储介质(ROM和RAM等)、通讯设备、IC卡或信用卡的读取设备等。嵌入式设备的系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用闪存(Flash Memory)作为存储介质。
[0003]目前市面上的嵌入式设备基本都有实现搜索功能,例如对于通讯录的搜索,主要 有三种搜索方法:第一种是基于联系人姓名的首字母进行的搜索;第二种是基于联系人姓名的全拼进行的搜索;第三种是基于联系人姓名进行的搜索。例如:通讯录中联系人“张三”,可以通过姓名的首字母“zs”进行搜索,也可以通过姓名的全拼“zhangsan”进行搜索,还可以通过姓名“张三”进行搜索。
[0004] 也有的嵌入式设备中实现了用电话号码的前几位进行搜索,可以搜索到以某位或某几位号码开头的所有的电话记录。
[0005] 但是,无论是上述的哪种搜索方法,每一次的搜索请求,都是需要在源数据处进行一次全范围搜索,这在资源受限的嵌入式设备中,由于其内存小,CPU运算能力弱,搜索效率
往往不高。
[0006] 有鉴于此,本发明人针对现有技术的缺陷深入研究,并有本案产生。
发明内容
[0007] 本发明所要解决的技术问题在于提供一种嵌入式设备的高效搜索方法。
[0008] 本发明采用以下技术方案解决上述技术问题:
一种嵌入式设备的高效搜索方法,包括如下步骤:
步骤I :创建搜索助手,在其内申请搜索缓冲器;所述缓冲器用于保存搜索结果,以及上次的搜索关键字;
步骤2 :调用者向所述搜索助手请求搜索关键字;
步骤3 :所述搜索助手在源数据处进行一次全范围搜索,将搜索结果拷贝至所述缓冲器,并在所述缓冲器中记录上次的搜索关键字,将搜索结果中预置数量的记录返回呈现给调用者;
步骤4 :当调用者继续向搜索助手请求搜索关键字;
步骤5 :搜索助手检测判断是否是在上次关键字的基础上搜索,是,则转入步骤6 ;否,则转入步骤3 ;
步骤6 :搜索助手直接从所述缓冲器中清除掉不符合条件的搜索结果,并在所述缓冲器中记录上次的搜索关键字,将搜素结果中预置数量的记录返回呈现给调用者。[0009] 进一步地,所述预置数量的记录是指第I至第10条的记录,如果不足10条则指全部记录。
[0010] 本发明的优点在于:采用本发明的技术方案,实际上是通过牺牲首次搜索时间,换取后续搜索的效率。它是时间换取空间的一种形式。在嵌入式设备中采用本发明的搜索方法,实现高效搜索。
附图说明
[0011] 下面参照附图结合实施例对本发明作进一步的描述。
[0012] 图I是本发明方法流程示意图。
具体实施方式
[0013] 如图I所示,一种嵌入式设备的高效搜索方法,包括如下步骤:
步骤I :创建搜索助手,在其内申请搜索缓冲器;所述缓冲器用于保存搜索结果,以及上次的搜索关键字;
步骤2 :调用者向所述搜索助手请求搜索关键字;
步骤3 :所述搜索助手在源数据处进行一次全范围搜索,将搜索结果拷贝至所述缓冲器,并在所述缓冲器中记录上次的搜索关键字,将搜索结果中预置数量的记录返回呈现给调用者;
步骤4 :当调用者继续向搜索助手请求搜索关键字;
步骤5 :搜索助手检测判断是否是在上次关键字的基础上搜索,是,则转入步骤6 ;否,则转入步骤3 ;
步骤6 :搜索助手直接从所述缓冲器中清除掉不符合条件的搜索结果,并在所述缓冲器中记录上次的搜索关键字,将搜素结果中预置数量的记录返回呈现给调用者。
[0014] 下面举一具体实例进行说明:
首先创建搜索助手,在其内申请搜索缓冲器;该缓冲器用于保存搜索结果,以及上次的搜索关键字;
调用者向搜索助手请求搜索关键字“ I” ;
搜索助手在源数据处进行一次全范围搜索,将所有符合关键字“I”的搜索结果拷贝至缓冲器,并在缓冲器中记录搜索关键字1,将搜索结果中预置数量的记录,例如第I至第10条的记录返回呈现给调用者,如果全部搜索结果不足10条,则返回全部记录呈现给调用者;
当调用者继续向搜索助手请求搜索关键字“13” ;
搜索助手检测到是在上次关键字的基础上搜索,则搜索助手直接从缓冲器中清除掉不符合条件的搜索结果,即缓冲器中只保存与第一位搜索关键词1+第二位搜索关键词3匹配的搜索结果,并在缓冲器中记录上次的搜索关键字“13”,将搜素结果中预置数量的记录返回呈现给调用者。
[0015] 以此类推,直至第一位搜索关键词+第二位搜索关键词+…+第N位搜索关键词,搜索完毕。
[0016] 当调用者继续向搜索助手请求搜索关键字“I” ;搜索助手检测到不是在上次关键字“13”的基础上搜索,则重新在源数据处进行一次全范围搜索,将所有符合关键字“I”的搜索结果拷贝至缓冲器,并在缓冲器中记录搜索关键字“ 1”,将搜索结果中预置数量的记录返回呈现给调用者。
[0017] 从以上具体实例可以看出,若调用者在原有N位数的搜索关键词的基础上往回删除M个位数的搜索关键词,即第一位搜索关键词+第二位搜索关键词+…+第N-M位搜索关键词,则搜索助手在源数据处进行一次全范围搜索,将所有与第一位搜索关键词+第二位搜索关键词+??? +第N-M位搜索关键词匹配的搜索结果拷贝至缓冲器,将搜索结果中预置数量的记录返回搜索助手呈现给调用者。
[0018] 下面举例说明本发明的有益效果:
假设搜索范围是1000个联系人,则创建搜索助手需要的额外内存空间为:1000个指针+ 32长度的搜索关键字,S卩1000 * 4 + 32 * 2 = 4064个字节。 [0019] 假设1000中有500个以“I”开头的联系人,则在首次搜索结束后,搜索范围将缩小一半。由于嵌入式设备CPU运行能力弱,搜索范围减少一半后,CPU的运行时间也减少了一半。
[0020] 在使用者通过“I”取不同范围记录时,搜索助手完全没有重新搜索的过程,CPU所需要计算的只是拷贝指定记录。
[0021] 因此,本发明实际上是通过牺牲首次搜索时间,换取后续搜索的效率。它是时间换取空间的一种形式。在嵌入式设备中采用本发明的搜索方法,实现高效搜索。
[0022] 以上所述仅为本发明的较佳实施用例而已,并非用于限定本发明的保护范图。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
国际分类号 | G06F17/30 |
日期 | 代码 | 事件 | 说明 |
---|---|---|---|
2013年5月1日 | C10 | Request of examination as to substance | |
2012年10月24日 | C06 | Publication |
以前的专利