分类: C/C++
2009-08-18 15:03:41
3600个数据进行测试(15k) | float | INT | shuffle(float) | shuffle(INT) | |
压缩率 | 压缩率 | 压缩率 | 压缩率 | ||
不变数据 | (1K)100% | (1K)100% | (1K)100% | (1K)100% | |
每个测试点数据都变化 | 线性变化 | (6k)64% | (12k)17% | (1K)95% | (2K)90% |
折线变化 | (7K)55% | (10K)32% | (2k)93% | (2K)89% | |
(100左右)100以内随机数 | (13k)18% | (11k)30% | (12k)21% | (9k)43% | |
(100左右)10以内随机数 | (12K)31% | (9K)39% | (10K)34% | (7K)56% | |
(100左右)1以内随机数 | (11K)47% | (7K)52% | (8K)46% | (6k)62% | |
每5个测试数据变化一次 | 线性变化 | (2K)90% | (2K)87% | (1K)96% | (2K)91% |
折线变化 | (2K)88% | (2K)87% | (1k)95% | (2K)91% | |
(100左右)100以内随机数 | (4k)79% | (3k)84% | (5k)65% | (4k)74% | |
(100左右)10以内随机数 | (3k)82% | (2k)87% | (5k)70% | (3k)80% | |
(100左右)1以内随机数 | (3k)84% | (2k)88% | (4k)75% | (3k)82% |
下面将相关代码共享:
sem.c :用于生产float和int两种类型的数据文件
|
mo.c:用于进行shuffle算法,生成test2 test3文件,同时提供反shuffle算法。
|
makefile文件:
|
最后,将所有test test1 test2 test3 文件用系统命令压缩后,形成文章开始的表格。
可以看到,相关压缩算法中,将float先转换为int,再将数据使用shuffle算法重新排列,最后再用zip进行压缩,压缩效率比较高。