乐趣区

通过索引优化查找性能

Qt 君最近为软键盘添加中文输入功能,由于字母对应拼音中文比较多。使用字母查找中文要快速响应,不然会影响界面交互。

  在网上找到了一个中文拼音字库,看了下里面的数据将近两万个。比如输入 ”a” 字母,一般我们会遍历所有符合 ”a” 字母的中文,这样将会遍历两万次。多多少少会影响界面交互的流畅性。

  看了一下规律,拼音中文对应字母可分为 a 到 z 共 26 大类。

 安 a
按 a
不 b
吧 ba
产 c
成 c
...

  如果将 a 到 z 细分 26 大类,就可以将查找范围大大缩小,而 a 到 z 就是其索引。

  建立 a 到 z 的索引,而查找的时候先查找某一个索引 (字母),再通过索引进一步查找对应的数据,从而实现优化查找效率。

退出移动版