亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久久噜噜噜久久人人看 | 亚洲三级电影全部在线观看高清| 美日韩一级片在线观看| 精品国产麻豆免费人成网站| 成人免费三级在线| 亚洲一区二区三区四区五区中文| 337p亚洲精品色噜噜噜| 国产经典欧美精品| 亚洲精品欧美激情| 26uuu亚洲综合色| 在线视频一区二区三| 国内外成人在线视频| 亚洲一区二区三区四区在线免费观看 | 欧美最猛性xxxxx直播| 首页国产欧美久久| 中文字幕不卡三区| 91精品国产91久久久久久一区二区 | 日韩精品一级中文字幕精品视频免费观看| 欧美成人精品3d动漫h| 91在线精品一区二区| 国产一区二区三区免费在线观看| 一区二区三区鲁丝不卡| 欧美激情资源网| 日韩免费在线观看| 欧美精品在线一区二区| 91年精品国产| 成人国产视频在线观看| 久久9热精品视频| 亚洲成人av资源| 亚洲制服丝袜av| 最好看的中文字幕久久| 欧美激情中文不卡| 精品裸体舞一区二区三区| 欧美在线播放高清精品| 91免费看`日韩一区二区| 国产一区二区在线看| 在线成人午夜影院| 日本韩国一区二区三区视频| 成人午夜激情片| 国产精品一区二区在线播放 | 精品亚洲成av人在线观看| 亚洲成人7777| 婷婷久久综合九色综合伊人色| 亚洲免费在线看| 欧美极品少妇xxxxⅹ高跟鞋 | 日韩欧美一区二区不卡| 欧美日韩国产高清一区| 欧美日韩黄色一区二区| 欧美视频完全免费看| 欧美在线观看视频一区二区 | 精品91自产拍在线观看一区| 日韩欧美国产综合一区| 精品国产免费视频| www日韩大片| 国产精品久久久久影视| 亚洲丝袜另类动漫二区| 亚洲一区二区三区在线| 亚洲电影视频在线| 日本女人一区二区三区| 韩国v欧美v日本v亚洲v| 成人一区二区三区视频| 一本久道久久综合中文字幕| 欧美色大人视频| 91精品欧美一区二区三区综合在 | 欧美aⅴ一区二区三区视频| 捆绑变态av一区二区三区| 国产一区二区三区免费| 99国产精品99久久久久久| 欧洲日韩一区二区三区| 91精品在线免费观看| 国产午夜亚洲精品不卡| 中文字幕在线播放不卡一区| 亚洲国产成人av| 久久国产精品一区二区| 精品在线一区二区| 久久99蜜桃精品| 懂色av一区二区夜夜嗨| 一本到高清视频免费精品| 91麻豆精品国产无毒不卡在线观看 | 亚洲免费色视频| 日韩一区精品字幕| 国产乱码一区二区三区| 在线免费av一区| 精品国产乱码久久| 亚洲美女屁股眼交| 人人超碰91尤物精品国产| 国内精品免费在线观看| 91麻豆国产精品久久| 欧美电影在线免费观看| 国产精品久久久久四虎| 亚洲精品视频免费观看| 狠狠色丁香久久婷婷综合_中| 成人三级在线视频| 91精品国产丝袜白色高跟鞋| 18成人在线观看| 韩国一区二区三区| 99久久久久久99| 欧美一级片免费看| 中文字幕亚洲视频| 日本不卡高清视频| 91免费视频网址| 久久亚洲精品国产精品紫薇| 亚洲成人黄色小说| 一本色道久久综合亚洲91| 欧美精品一区视频| 日韩在线一区二区三区| 91高清视频免费看| 欧美高清在线一区| 九九九久久久精品| 欧美日韩dvd在线观看| 久久综合999| 久久国产欧美日韩精品| 欧美浪妇xxxx高跟鞋交| 一区二区三区四区亚洲| av电影在线观看完整版一区二区| 精品少妇一区二区三区免费观看| 亚洲图片另类小说| 成人性生交大片免费看中文| 欧美一区二区在线观看| 亚洲二区视频在线| 91视频国产观看| 国产精品二三区| 91女神在线视频| 一区二区三区在线视频免费| 丁香激情综合五月| 国产精品久久久久毛片软件| 成人精品在线视频观看| 欧美视频自拍偷拍| 中文字幕亚洲成人| 成人免费高清在线观看| 国产精品理论片| 99精品国产99久久久久久白柏| 亚洲欧洲成人精品av97| 老色鬼精品视频在线观看播放| 欧美妇女性影城| 日韩电影免费在线看| 91精品国模一区二区三区| 日日夜夜精品视频免费| 日韩精品一区二区三区视频在线观看 | 91黄色免费网站| 中文字幕不卡在线观看| 色综合久久综合网97色综合 | 亚洲一区在线观看网站| 欧美日韩在线一区二区| 日韩av一区二| 国产亚洲精品bt天堂精选| jlzzjlzz亚洲女人18| 亚洲精品国产一区二区精华液 | 欧亚一区二区三区| 日韩中文欧美在线| 欧美国产一区二区| 97久久精品人人爽人人爽蜜臀| 亚洲欧美激情视频在线观看一区二区三区| 欧美综合视频在线观看| 免费成人你懂的| 国产婷婷精品av在线| 欧美性受xxxx| 国产一区二区在线影院| 一区二区三区欧美| 欧美成人三级在线| 92国产精品观看| 麻豆freexxxx性91精品| 亚洲日本在线视频观看| 精品成a人在线观看| 在线日韩av片| 成人午夜视频在线观看| 午夜av区久久| 日本一区二区三区国色天香 | 亚洲人成精品久久久久久| 欧美猛男gaygay网站| 成人免费视频一区二区| 日韩精品成人一区二区三区| 1区2区3区国产精品| 2020国产精品| 欧美亚洲一区二区三区四区| 韩国女主播一区| 亚洲小少妇裸体bbw| 国产精品久久综合| 欧美精品一区二区高清在线观看| 欧亚洲嫩模精品一区三区| 成人免费电影视频| 国模冰冰炮一区二区| 偷拍日韩校园综合在线| 亚洲猫色日本管| 欧美国产禁国产网站cc| 欧美videofree性高清杂交| 在线看国产一区二区| caoporn国产一区二区| 国产美女在线精品| 麻豆久久久久久久| 亚洲高清在线视频| 亚洲视频在线一区二区| 久久久精品2019中文字幕之3| 欧美一级高清片| 欧美一区三区四区| 欧美巨大另类极品videosbest| 91黄色免费版| 色哟哟一区二区在线观看| aaa国产一区| 成人永久免费视频|