• 大小: 794KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-26
  • 语言: 其他
  • 标签: bzip2  

资源简介

bzip2-1.0.6 源码 bzip2-1.0.6 源码 bzip2-1.0.6 源码

资源截图

代码片段和文件信息


/*-------------------------------------------------------------*/
/*--- Block sorting machinery                               ---*/
/*---                                           blocksort.c ---*/
/*-------------------------------------------------------------*/

/* ------------------------------------------------------------------
   This file is part of bzip2/libbzip2 a program and library for
   lossless block-sorting data compression.

   bzip2/libbzip2 version 1.0.6 of 6 September 2010
   Copyright (C) 1996-2010 Julian Seward 

   Please read the WARNING DISCLAIMER and PATENTS sections in the 
   README file.

   This program is released under the terms of the license contained
   in the file LICENSE.
   ------------------------------------------------------------------ */


#include “bzlib_private.h“

/*---------------------------------------------*/
/*--- Fallback O(N log(N)^2) sorting        ---*/
/*--- algorithm for repetitive blocks      ---*/
/*---------------------------------------------*/

/*---------------------------------------------*/
static 
__inline__
void fallbackSimpleSort ( UInt32* fmap 
                          UInt32* eclass 
                          Int32   lo 
                          Int32   hi )
{
   Int32 i j tmp;
   UInt32 ec_tmp;

   if (lo == hi) return;

   if (hi - lo > 3) {
      for ( i = hi-4; i >= lo; i-- ) {
         tmp = fmap[i];
         ec_tmp = eclass[tmp];
         for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
            fmap[j-4] = fmap[j];
         fmap[j-4] = tmp;
      }
   }

   for ( i = hi-1; i >= lo; i-- ) {
      tmp = fmap[i];
      ec_tmp = eclass[tmp];
      for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
         fmap[j-1] = fmap[j];
      fmap[j-1] = tmp;
   }
}


/*---------------------------------------------*/
#define fswap(zz1 zz2) \
   { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }

#define fvswap(zzp1 zzp2 zzn)       \
{                                     \
   Int32 yyp1 = (zzp1);               \
   Int32 yyp2 = (zzp2);               \
   Int32 yyn  = (zzn);                \
   while (yyn > 0) {                  \
      fswap(fmap[yyp1] fmap[yyp2]);  \
      yyp1++; yyp2++; yyn--;          \
   }                                  \
}


#define fmin(ab) ((a) < (b)) ? (a) : (b)

#define fpush(lzhz) { stackLo[sp] = lz; \
                       stackHi[sp] = hz; \
                       sp++; }

#define fpop(lzhz) { sp--;              \
                      lz = stackLo[sp];  \
                      hz = stackHi[sp]; }

#define FALLBACK_QSORT_SMALL_THRESH 10
#define FALLBACK_QSORT_STACK_SIZE   100


static
void fallbackQSort3 ( UInt32* fmap 
                      UInt32* eclass
                      Int32   loSt 
                      Int32   hiSt )
{
   Int32 unLo unHi ltLo gtHi n m;
   Int32 sp lo hi;
   UInt32 med r r3;
   Int32 stackLo[FALLBACK_QSORT_STACK_SIZE];
   Int32 stackHi[FALLBACK_QSORT_STACK_SIZE

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       30694  2010-09-11 06:37  bzip2-1.0.6\blocksort.c
     文件        1057  2007-01-03 10:00  bzip2-1.0.6\bz-common.xsl
     文件        2128  2007-01-03 10:00  bzip2-1.0.6\bzdiff
     文件         897  2007-01-03 10:00  bzip2-1.0.6\bzdiff.1
     文件       10585  2007-01-03 10:00  bzip2-1.0.6\bz-fo.xsl
     文件        1677  2007-01-03 10:00  bzip2-1.0.6\bzgrep
     文件        1297  2007-01-03 10:00  bzip2-1.0.6\bzgrep.1
     文件         646  2007-01-03 10:00  bzip2-1.0.6\bz-html.xsl
     文件        1746  2007-01-03 10:00  bzip2-1.0.6\bzip.css
     文件       16256  2010-09-11 17:35  bzip2-1.0.6\bzip2.1
     文件       20935  2010-09-11 17:34  bzip2-1.0.6\bzip2.1.preformatted
     文件       58556  2010-09-11 07:04  bzip2-1.0.6\bzip2.c
     文件       18988  2010-09-11 17:35  bzip2-1.0.6\bzip2.txt
     文件       14924  2010-09-11 07:18  bzip2-1.0.6\bzip2recover.c
     文件       45995  2010-09-11 06:38  bzip2-1.0.6\bzlib.c
     文件        6245  2010-09-11 07:08  bzip2-1.0.6\bzlib.h
     文件       13244  2010-09-11 06:41  bzip2-1.0.6\bzlib_private.h
     文件        1259  2007-01-03 10:00  bzip2-1.0.6\bzmore
     文件        4310  2007-01-03 10:00  bzip2-1.0.6\bzmore.1
     文件       11417  2010-09-20 15:11  bzip2-1.0.6\CHANGES
     文件       20561  2010-09-11 07:10  bzip2-1.0.6\compress.c
     文件        4818  2010-09-11 06:43  bzip2-1.0.6\crctable.c
     文件       20919  2010-09-11 06:43  bzip2-1.0.6\decompress.c
     文件        4402  2007-01-03 10:00  bzip2-1.0.6\dlltest.c
     文件        3516  2007-01-03 10:00  bzip2-1.0.6\dlltest.dsp
     文件         240  2010-09-11 07:15  bzip2-1.0.6\entities.xml
     文件        1689  2010-09-11 06:36  bzip2-1.0.6\format.pl
     文件        6991  2010-09-11 06:37  bzip2-1.0.6\huffman.c
     文件         517  2007-01-03 10:00  bzip2-1.0.6\libbz2.def
     文件        4254  2007-01-03 10:00  bzip2-1.0.6\libbz2.dsp
     文件        1901  2010-09-11 07:15  bzip2-1.0.6\LICENSE
............此处省略25个文件信息

评论

共有 条评论