关于简单数据压缩的算法

来源:互联网 发布:淘宝草稿箱在哪里找 编辑:程序博客网 时间:2024/05/22 00:46
public static byte[] compressData(){//数据压缩的算法byte[] data=new byte[]{12,56,56,23,82,82,82,82,89,91,90,90,90};//12,56,56,23,0,4,82,89,91,0,3,90byte[] tempData=new byte[data.length];int i=0,temp=0,cindex=0,s=data.length;for(;i<data.length;i++){for(int j=i;j<data.length;j++){if(data[i]==data[j]){temp++;s--;if(j==data.length-1){if(temp>2){tempData[cindex]=0;tempData[cindex+1]=(byte)(temp);tempData[cindex+2]=data[i];cindex=cindex+3;s+=3;}else{for(int k=0;k<temp;k++){tempData[cindex+k]=data[i];}cindex=cindex+temp;s+=temp;}i=j;break;}continue;}else{if(temp>2){tempData[cindex]=0;tempData[cindex+1]=(byte)(temp);tempData[cindex+2]=data[i];cindex=cindex+3;s+=3;}else{for(int k=0;k<temp;k++){tempData[cindex+k]=data[i];}cindex=cindex+temp;s+=temp;}i=j-1;temp=0;break;}}}byte[] compressData=new byte[s];System.arraycopy(tempData, 0, compressData, 0, s);return compressData;}


谁有更好的写法,共享一下,谢谢。