我的排序機理論上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方法排序、匹配。我的排序機發表後,丙肝病毒的分類可能只需要二個小時。這也是我推遲發表我的發明的原因之一。我要把這一塊肥肉一起吞下。這個經濟利益太大了。
非常重要的應用太多了!
|