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的索引,而查找的时候先查找某一个索引(字母),再通过索引进一步查找对应的数据,从而实现优化查找效率。