資源簡介
開源的壓縮算法,可以直接在代碼中實現,bzip2的壓縮時間不是最快的,但是壓縮的效率基本是最好的。而且封裝了許多簡化操作的接口。

代碼片段和文件信息
/*-------------------------------------------------------------*/
/*---?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
?????文件??????10585??2007-01-03?10:00??bzip2-1.0.6\bz-fo.xsl
?????文件????????646??2007-01-03?10:00??bzip2-1.0.6\bz-html.xsl
?????文件???????2128??2007-01-03?10:00??bzip2-1.0.6\bzdiff
?????文件???????1677??2007-01-03?10:00??bzip2-1.0.6\bzgrep
?????文件???????1746??2007-01-03?10:00??bzip2-1.0.6\bzip.css
?????文件??????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
?????文件??????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
?????文件???????4885??2011-05-12?21:48??bzip2-1.0.6\dlltest.vcproj
?????文件????????240??2010-09-11?07:15??bzip2-1.0.6\entities.xm
?????文件???????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
?????文件?????618496??2011-05-26?10:41??bzip2-1.0.6\libbz2.dll
?????文件???????4254??2007-01-03?10:00??bzip2-1.0.6\libbz2.dsp
?????文件????1144480??2011-05-26?10:41??bzip2-1.0.6\libbz2.ilk
?????文件???????7627??2011-05-12?21:43??bzip2-1.0.6\libbz2.vcproj
............此處省略31個文件信息
- 上一篇:google地址解析
- 下一篇:計算機網絡系統方法 第五版 課后答案英文版
評論
共有 條評論