我的排序机理论上n个数排序是绝对值为1,不是O(1),也不是O(n),与n无关!原因是现在排序的第一步是要把排序的n个数在一个内存区放好,然后开始排序。它枪一响,下一拍,我的排序机的第一个排好序的数据就可以开始被使用了。下面提到的BWT变换,就可以顺序地一个一个处理排好序的数据。一个时钟都没有浪费。
有一个BWT变换是数据无损压缩的一个重要方法,SUFFIX ARRAY方法用于生物信息工程,简单说,它可以把一整个字母文件(比如说有1百万个字母)当作一个string,每右旋一个字母,生成一个新的string,对总共1百万个1百万字母长的string进行排序,把最后一列取出,压缩,送给对方。我设计有专门的电路来解决这个问题。软件是O(n),我的方法是绝对值小于3*n。具体运行软件和硬件的速度相差十万八千里。BWT变换没广泛用在数据无损压缩上,因为软件压缩太慢。我的排序机发表后,这个古老的方法将死灰复燃。
佳能用二个专门的CPU芯片高速压缩图像数据,非常耗电。用我的排序机,又快又省电。对便携式照相机来说,这是一个非常有用的应用。
我一亲戚最近治疗丙肝,丙肝病毒的分类需要二个星期。丙肝病毒的分类基本就是用SUFFIX ARRAY方法排序、匹配。我的排序机发表后,丙肝病毒的分类可能只需要二个小时。这也是我推迟发表我的发明的原因之一。我要把这一块肥肉一起吞下。这个经济利益太大了。
非常重要的应用太多了!
|