亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? blocksort.c

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*-------------------------------------------------------------*//*--- Block sorting machinery                               ---*//*---                                           blocksort.c ---*//*-------------------------------------------------------------*//*--  This file is a part of bzip2 and/or libbzip2, a program and  library for lossless, block-sorting data compression.  Copyright (C) 1996-2000 Julian R Seward.  All rights reserved.  Redistribution and use in source and binary forms, with or without  modification, are permitted provided that the following conditions  are met:  1. Redistributions of source code must retain the above copyright     notice, this list of conditions and the following disclaimer.  2. The origin of this software must not be misrepresented; you must      not claim that you wrote the original software.  If you use this      software in a product, an acknowledgment in the product      documentation would be appreciated but is not required.  3. Altered source versions must be plainly marked as such, and must     not be misrepresented as being the original software.  4. The name of the author may not be used to endorse or promote      products derived from this software without specific prior written      permission.  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  Julian Seward, Cambridge, UK.  jseward@acm.org  bzip2/libbzip2 version 1.0 of 21 March 2000  This program is based on (at least) the work of:     Mike Burrows     David Wheeler     Peter Fenwick     Alistair Moffat     Radford Neal     Ian H. Witten     Robert Sedgewick     Jon L. Bentley  For more information on these sources, see the manual.  To get some idea how the block sorting algorithms in this file   work, read my paper      On the Performance of BWT Sorting Algorithms  in Proceedings of the IEEE Data Compression Conference 2000,  Snowbird, Utah, USA, 27-30 March 2000.  The main sort in this  file implements the algorithm called  cache  in the paper.--*/#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(a,b) ((a) < (b)) ? (a) : (b)#define fpush(lz,hz) { stackLo[sp] = lz; \                       stackHi[sp] = hz; \                       sp++; }#define fpop(lz,hz) { sp--;              \                      lz = stackLo[sp];  \                      hz = stackHi[sp]; }#define FALLBACK_QSORT_SMALL_THRESH 10#define FALLBACK_QSORT_STACK_SIZE   100staticvoid 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];   r = 0;   sp = 0;   fpush ( loSt, hiSt );   while (sp > 0) {      AssertH ( sp < FALLBACK_QSORT_STACK_SIZE, 1004 );      fpop ( lo, hi );      if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {         fallbackSimpleSort ( fmap, eclass, lo, hi );         continue;      }      /* Random partitioning.  Median of 3 sometimes fails to         avoid bad cases.  Median of 9 seems to help but          looks rather expensive.  This too seems to work but         is cheaper.  Guidance for the magic constants          7621 and 32768 is taken from Sedgewick's algorithms         book, chapter 35.      */      r = ((r * 7621) + 1) % 32768;      r3 = r % 3;      if (r3 == 0) med = eclass[fmap[lo]]; else      if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else                   med = eclass[fmap[hi]];      unLo = ltLo = lo;      unHi = gtHi = hi;      while (1) {         while (1) {            if (unLo > unHi) break;            n = (Int32)eclass[fmap[unLo]] - (Int32)med;            if (n == 0) {                fswap(fmap[unLo], fmap[ltLo]);                ltLo++; unLo++;                continue;             };            if (n > 0) break;            unLo++;         }         while (1) {            if (unLo > unHi) break;            n = (Int32)eclass[fmap[unHi]] - (Int32)med;            if (n == 0) {                fswap(fmap[unHi], fmap[gtHi]);                gtHi--; unHi--;                continue;             };            if (n < 0) break;            unHi--;         }         if (unLo > unHi) break;         fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--;      }      AssertD ( unHi == unLo-1, "fallbackQSort3(2)" );      if (gtHi < ltLo) continue;      n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);      m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);      n = lo + unLo - ltLo - 1;      m = hi - (gtHi - unHi) + 1;      if (n - lo > hi - m) {         fpush ( lo, n );         fpush ( m, hi );      } else {         fpush ( m, hi );         fpush ( lo, n );      }   }}#undef fmin#undef fpush#undef fpop#undef fswap#undef fvswap#undef FALLBACK_QSORT_SMALL_THRESH#undef FALLBACK_QSORT_STACK_SIZE/*---------------------------------------------*//* Pre:      nblock > 0      eclass exists for [0 .. nblock-1]      ((UChar*)eclass) [0 .. nblock-1] holds block      ptr exists for [0 .. nblock-1]   Post:      ((UChar*)eclass) [0 .. nblock-1] holds block      All other areas of eclass destroyed      fmap [0 .. nblock-1] holds sorted order      bhtab [ 0 .. 2+(nblock/32) ] destroyed*/#define       SET_BH(zz)  bhtab[(zz) >> 5] |= (1 << ((zz) & 31))#define     CLEAR_BH(zz)  bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31))#define     ISSET_BH(zz)  (bhtab[(zz) >> 5] & (1 << ((zz) & 31)))#define      WORD_BH(zz)  bhtab[(zz) >> 5]#define UNALIGNED_BH(zz)  ((zz) & 0x01f)staticvoid fallbackSort ( UInt32* fmap,                     UInt32* eclass,                     UInt32* bhtab,                    Int32   nblock,                    Int32   verb ){   Int32 ftab[257];   Int32 ftabCopy[256];   Int32 H, i, j, k, l, r, cc, cc1;   Int32 nNotDone;   Int32 nBhtab;   UChar* eclass8 = (UChar*)eclass;   /*--      Initial 1-char radix sort to generate      initial fmap and initial BH bits.   --*/   if (verb >= 4)      VPrintf0 ( "        bucket sorting ...\n" );   for (i = 0; i < 257;    i++) ftab[i] = 0;   for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;   for (i = 0; i < 256;    i++) ftabCopy[i] = ftab[i];   for (i = 1; i < 257;    i++) ftab[i] += ftab[i-1];   for (i = 0; i < nblock; i++) {      j = eclass8[i];      k = ftab[j] - 1;      ftab[j] = k;      fmap[k] = i;   }   nBhtab = 2 + (nblock / 32);   for (i = 0; i < nBhtab; i++) bhtab[i] = 0;   for (i = 0; i < 256; i++) SET_BH(ftab[i]);   /*--      Inductively refine the buckets.  Kind-of an      "exponential radix sort" (!), inspired by the      Manber-Myers suffix array construction algorithm.   --*/   /*-- set sentinel bits for block-end detection --*/   for (i = 0; i < 32; i++) {       SET_BH(nblock + 2*i);      CLEAR_BH(nblock + 2*i + 1);   }   /*-- the log(N) loop --*/   H = 1;   while (1) {      if (verb >= 4)          VPrintf1 ( "        depth %6d has ", H );      j = 0;      for (i = 0; i < nblock; i++) {         if (ISSET_BH(i)) j = i;         k = fmap[i] - H; if (k < 0) k += nblock;         eclass[k] = j;      }      nNotDone = 0;      r = -1;      while (1) {	 /*-- find the next non-singleton bucket --*/         k = r + 1;         while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;         if (ISSET_BH(k)) {            while (WORD_BH(k) == 0xffffffff) k += 32;            while (ISSET_BH(k)) k++;         }         l = k - 1;         if (l >= nblock) break;         while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;         if (!ISSET_BH(k)) {            while (WORD_BH(k) == 0x00000000) k += 32;            while (!ISSET_BH(k)) k++;         }         r = k - 1;         if (r >= nblock) break;         /*-- now [l, r] bracket current bucket --*/         if (r > l) {            nNotDone += (r - l + 1);            fallbackQSort3 ( fmap, eclass, l, r );            /*-- scan bucket and generate header bits-- */            cc = -1;            for (i = l; i <= r; i++) {               cc1 = eclass[fmap[i]];               if (cc != cc1) { SET_BH(i); cc = cc1; };            }         }      }      if (verb >= 4)          VPrintf1 ( "%6d unresolved strings\n", nNotDone );      H *= 2;      if (H > nblock || nNotDone == 0) break;   }   /*--       Reconstruct the original block in      eclass8 [0 .. nblock-1], since the      previous phase destroyed it.   --*/   if (verb >= 4)      VPrintf0 ( "        reconstructing block ...\n" );   j = 0;   for (i = 0; i < nblock; i++) {      while (ftabCopy[j] == 0) j++;      ftabCopy[j]--;      eclass8[fmap[i]] = (UChar)j;   }   AssertH ( j < 256, 1005 );}#undef       SET_BH#undef     CLEAR_BH

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区日韩一区| 亚洲国产日韩综合久久精品| 理论电影国产精品| 日韩欧美一区中文| 久久av中文字幕片| 欧美高清在线精品一区| 国产成人自拍在线| 亚洲制服丝袜av| 欧美人体做爰大胆视频| 成人精品gif动图一区| 亚洲va欧美va人人爽午夜| 色综合色综合色综合色综合色综合| 欧美一区二区免费视频| 国产综合色视频| 亚洲国产色一区| 久久久亚洲欧洲日产国码αv| 91一区一区三区| 久久99国产精品成人| 精品国产sm最大网站| 在线免费视频一区二区| 国产精品影视在线观看| 亚洲一区自拍偷拍| 久久久久久久久久久久久夜| 国产一区二区不卡在线| 亚洲大片在线观看| 国产亚洲视频系列| 在线看一区二区| 狠狠色狠狠色综合系列| 午夜精品久久久久久久99水蜜桃| 亚洲国产高清aⅴ视频| 日韩精品在线一区| 精品视频一区三区九区| 国产一区免费电影| 亚洲一区二区三区不卡国产欧美 | 亚洲精品一区二区三区影院| thepron国产精品| 激情文学综合网| 日本一不卡视频| 亚洲第一在线综合网站| 亚洲美女在线一区| 久久综合九色综合97_久久久| 色菇凉天天综合网| 91亚洲精品乱码久久久久久蜜桃| 国产一区在线观看麻豆| 婷婷一区二区三区| 亚洲成人自拍网| 国产精品福利av| 国产亚洲短视频| 日韩精品在线一区| 成人黄色一级视频| 成人高清av在线| 玖玖九九国产精品| 免费一级欧美片在线观看| 偷拍亚洲欧洲综合| 亚洲欧美精品午睡沙发| 亚洲少妇30p| 亚洲色图在线视频| 一区二区国产视频| 久久久久97国产精华液好用吗| 日韩欧美中文字幕制服| 日韩视频在线你懂得| 欧美日韩在线播放一区| 欧美视频一区二区三区| 一本色道亚洲精品aⅴ| 成人久久视频在线观看| 波多野结衣中文字幕一区| 国产夫妻精品视频| 国产成人自拍高清视频在线免费播放| 亚洲h精品动漫在线观看| 亚洲午夜成aⅴ人片| 视频一区二区三区在线| 轻轻草成人在线| 日韩二区三区四区| 蜜臀av性久久久久蜜臀aⅴ四虎| 蜜桃精品视频在线观看| 日韩av二区在线播放| 亚洲美女淫视频| 亚洲aⅴ怡春院| 肉肉av福利一精品导航| 亚洲专区一二三| 一区二区在线观看视频| 亚洲成人资源网| 久久9热精品视频| 在线视频你懂得一区| 欧美亚洲动漫另类| 欧美一区二区三区公司| 日韩免费在线观看| 国产日本一区二区| 久久久久国产成人精品亚洲午夜| 久久一区二区三区国产精品| 中文字幕二三区不卡| 国产精品乱人伦中文| 亚洲午夜在线电影| 日本成人在线网站| bt欧美亚洲午夜电影天堂| 不卡一区在线观看| 欧美精品777| 日韩欧美国产wwwww| 国产精品美女久久久久aⅴ国产馆| 国产精品久久久久aaaa樱花| 亚洲激情欧美激情| 亚洲国产日韩av| 国产美女在线观看一区| 91黄视频在线| 精品电影一区二区三区| 成人免费小视频| 日韩激情中文字幕| 不卡一区二区在线| 日本国产一区二区| 67194成人在线观看| 久久久99精品免费观看不卡| 亚洲黄色免费网站| 国产在线国偷精品免费看| 99视频有精品| 制服丝袜在线91| 国产欧美一区二区精品忘忧草| 一级中文字幕一区二区| 国产激情一区二区三区| 欧美日韩国产小视频| 国产精品嫩草99a| 麻豆精品视频在线| 91福利小视频| 日本一二三四高清不卡| 偷拍亚洲欧洲综合| 91在线观看视频| 欧美一区二区私人影院日本| 国产精品国产精品国产专区不片 | 精品国产制服丝袜高跟| 一区二区三区在线免费| 国产精品1024| 日韩精品一区二区三区swag| 亚洲女人小视频在线观看| 黄色日韩网站视频| 在线观看日韩电影| 久久综合给合久久狠狠狠97色69| 亚洲国产精品嫩草影院| www.亚洲人| 国产日韩三级在线| 麻豆国产精品777777在线| 欧美精品少妇一区二区三区| 国产精品电影院| 亚洲品质自拍视频网站| 不卡大黄网站免费看| 久久亚洲影视婷婷| 麻豆精品视频在线观看| 91激情在线视频| 亚洲国产精品视频| 色综合久久久久综合| 亚洲国产精品嫩草影院| 色婷婷久久久久swag精品| 国产精品久久久久四虎| 91亚洲精品久久久蜜桃| 亚洲综合免费观看高清完整版在线| 欧美怡红院视频| 免费在线观看不卡| 久久久不卡影院| 不卡大黄网站免费看| 亚洲最大成人综合| 欧美日韩mp4| 国产在线精品一区二区| 中文字幕亚洲电影| 91国偷自产一区二区开放时间| 亚洲bdsm女犯bdsm网站| 欧美日本免费一区二区三区| 久久精品国产在热久久| 欧美激情资源网| 欧美在线高清视频| 午夜国产精品影院在线观看| 久久蜜桃香蕉精品一区二区三区| 国产不卡视频在线播放| 一级女性全黄久久生活片免费| 欧美日韩在线播| 国产一二精品视频| 亚洲自拍偷拍九九九| 精品美女被调教视频大全网站| 成人综合在线观看| 三级一区在线视频先锋| 久久久.com| 欧美日韩视频专区在线播放| 国产精品羞羞答答xxdd| 亚洲国产wwwccc36天堂| 国产三级精品在线| 欧美日韩激情在线| 成人永久免费视频| 日韩高清在线电影| 久久久美女毛片| 欧美私模裸体表演在线观看| 国产成人a级片| 亚洲综合精品自拍| 欧美国产国产综合| 日韩欧美中文字幕精品| 一本色道久久综合亚洲aⅴ蜜桃| 奇米一区二区三区| 亚洲人成网站色在线观看| 欧美va亚洲va在线观看蝴蝶网| 91麻豆国产香蕉久久精品| 蜜桃精品在线观看| 日韩毛片视频在线看| 久久久精品人体av艺术| 欧美丝袜丝交足nylons|