一旦专利
离开嵌入式行业两年,今天看到了自己在公司的专利后。
公开号 | 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 :创建搜索助手,在其内申请搜索缓冲器;所述缓冲器用于保存搜索结果,以及上次的搜索keyword;
步骤2 :调用者向所述搜索助手请求搜索keyword。
步骤3 :所述搜索助手在源数据处进行一次全范围搜索,将搜索结果拷贝至所述缓冲器。并在所述缓冲器中记录上次的搜索keyword,将搜索结果中预置数量的记录返回呈现给调用者;
步骤4 :当调用者继续向搜索助手请求搜索keyword;
步骤5 :搜索助手检測推断是否是在上次keyword的基础上搜索,是。则转入步骤6 ;否,则转入步骤3 ;
步骤6 :搜索助手直接从所述缓冲器中清除掉不符合条件的搜索结果,并在所述缓冲器中记录上次的搜索keyword,将搜素结果中预置数量的记录返回呈现给调用者。[0009] 进一步地。所述预置数量的记录是指第I至第10条的记录,假设不足10条则指所有记录。
[0010] 本发明的长处在于:採用本发明的技术方案。实际上是通过牺牲首次搜索时间,换取兴许搜索的效率。它是时间换取空间的一种形式。
在嵌入式设备中採用本发明的搜索方法,实现高效搜索。
附图说明
[0011] 以下參照附图结合实施例对本发明作进一步的描写叙述。
[0012] 图I是本发明方法流程示意图。
详细实施方式
[0013] 如图I所看到的。一种嵌入式设备的高效搜索方法,包含例如以下步骤:
步骤I :创建搜索助手,在其内申请搜索缓冲器;所述缓冲器用于保存搜索结果,以及上次的搜索keyword;
步骤2 :调用者向所述搜索助手请求搜索keyword;
步骤3 :所述搜索助手在源数据处进行一次全范围搜索。将搜索结果拷贝至所述缓冲器,并在所述缓冲器中记录上次的搜索keyword。将搜索结果中预置数量的记录返回呈现给调用者;
步骤4 :当调用者继续向搜索助手请求搜索keyword;
步骤5 :搜索助手检測推断是否是在上次keyword的基础上搜索,是。则转入步骤6 ;否,则转入步骤3 。
步骤6 :搜索助手直接从所述缓冲器中清除掉不符合条件的搜索结果,并在所述缓冲器中记录上次的搜索keyword。将搜素结果中预置数量的记录返回呈现给调用者。
[0014] 以下举一详细实例进行说明:
首先创建搜索助手。在其内申请搜索缓冲器。该缓冲器用于保存搜索结果,以及上次的搜索keyword。
调用者向搜索助手请求搜索keyword“ I” 。
搜索助手在源数据处进行一次全范围搜索,将所有符合keyword“I”的搜索结果拷贝至缓冲器,并在缓冲器中记录搜索keyword1。将搜索结果中预置数量的记录,比如第I至第10条的记录返回呈现给调用者。假设所有搜索结果不足10条,则返回所有记录呈现给调用者。
当调用者继续向搜索助手请求搜索keyword“13” ;
搜索助手检測到是在上次keyword的基础上搜索。则搜索助手直接从缓冲器中清除掉不符合条件的搜索结果,即缓冲器中仅仅保存与第一位搜索关键词1+第二位搜索关键词3匹配的搜索结果。并在缓冲器中记录上次的搜索keyword“13”,将搜素结果中预置数量的记录返回呈现给调用者。
[0015] 以此类推。直至第一位搜索关键词+第二位搜索关键词+…+第N位搜索关键词。搜索完成。
[0016] 当调用者继续向搜索助手请求搜索keyword“I” ;搜索助手检測到不是在上次keyword“13”的基础上搜索,则又一次在源数据处进行一次全范围搜索,将全部符合keyword“I”的搜索结果拷贝至缓冲器,并在缓冲器中记录搜索keyword“ 1”,将搜索结果中预置数量的记录返回呈现给调用者。
[0017] 从以上详细实例能够看出。若调用者在原有N位数的搜索关键词的基础上往回删除M个位数的搜索关键词,即第一位搜索关键词+第二位搜索关键词+…+第N-M位搜索关键词,则搜索助手在源数据处进行一次全范围搜索,将全部与第一位搜索关键词+第二位搜索关键词+••• +第N-M位搜索关键词匹配的搜索结果拷贝至缓冲器,将搜索结果中预置数量的记录返回搜索助手呈现给调用者。
[0018] 以下举例说明本发明的故意效果:
如果搜索范围是1000个联系人,则创建搜索助手须要的额外内存空间为:1000个指针+ 32长度的搜索keyword。S卩1000 * 4 + 32 * 2 = 4064个字节。 [0019] 如果1000中有500个以“I”开头的联系人,则在首次搜索结束后,搜索范围将缩小一半。因为嵌入式设备CPU执行能力弱。搜索范围降低一半后。CPU的执行时间也降低了一半。
[0020] 在使用者通过“I”取不同范围记录时。搜索助手全然没有又一次搜索的过程,CPU所须要计算的仅仅是拷贝指定记录。
[0021] 因此。本发明实际上是通过牺牲首次搜索时间。换取兴许搜索的效率。它是时间换取空间的一种形式。
在嵌入式设备中採用本发明的搜索方法,实现高效搜索。
[0022] 以上所述仅为本发明的较佳实施用例而已。并不是用于限定本发明的保护范图。凡在本发明的精神和原则之内,所作的不论什么改动、等同替换以及改进等,均应包括在本发明的保护范围之内。
版权声明:本文博客原创文章,博客,未经同意,不得转载。