通过索引优化查找性能

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

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

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

1
2
3
4
5
6
7
安a
按a
不b
吧ba
产c
成c
...

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

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