howbig.c

来自「高效率的一种通用压缩/解压程序」· C语言 代码 · 共 37 行

C
37
字号
#include <stdio.h>#include <assert.h>#include "bzlib.h"unsigned char ibuff[1000000];unsigned char obuff[1000000];void doone ( int n ){   int i, j, k, q, nobuff;   q = 0;   for (k = 0; k < 1; k++) {      for (i = 0; i < n; i++)         ibuff[i] = ((unsigned long)(random())) & 0xff;      nobuff = 1000000;      j = bzBuffToBuffCompress ( obuff, &nobuff, ibuff, n, 9,0,0 );      assert (j == BZ_OK);      if (nobuff > q) q = nobuff;   }   printf ( "%d %d(%d)\n", n, q, (int)((float)n * 1.01 - (float)q) );}int main ( int argc, char** argv ){   int i;   i = 0;   while (1) {     if (i >= 900000) break;     doone(i);     if (   (int)(1.10 * i) > i )        i = (int)(1.10 * i); else i++;   }   return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?