////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    MF 2004/04/12(Mon) No.252
    zMF 2241 ( Mag2 + Pubzine )
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                QOOSNSPQij̍XV                */
http://www.kab-studio.biz/index.html

EقƂ́[̂肩 u7. zMvǉI
@قƂ́[̂肩Ɂu7.zMvǉ܂B
@قƂ́[̂肩͍񂪍ŏIɂȂ܂B̊̂߂̐V
܂[B
[ قƂ́[̂肩 ]
http://www.kab-studio.biz/Comic/HotHerbMaking/index.html


////////////////////////////////////////////////////////////////////
/*                        储ʂȓL                        */
http://www.kab-studio.biz/nikki2/index.html

2004/04/04 (Sun)
@ߑOɕrldƂBł[ƁBȂ̂łƂƂƓLBe
r̓vleXƃWFhBN؂Ă܂A߂łB

2004/04/05 (Mon)
@QĂB񂹂̂ԂBgcfbL̂炪
ĂBΗj[͂VccB

2004/04/06 (Tue)
@RɃoOׂBtNV{ toString() AzQƂŖ
[vBVԑg͂ǂccB

2004/04/07 (Wed)
@oOVׂB̊ԂɂςĂccBPPオɊ
ȂBer MONSTER BWIuH@KX
K[K[ǂɓ邩B

2004/04/08 (Thu)
@R̃oOŉEB}eACYhr[Ƃ_vƂBB
ƂwBࣕՂʔB́ccB AIWA ̃wbhzvC
[w\B

2004/04/09 (Fri)
@̏dUWL̎bPWBƂ̓oOׂB AZ-HS256 wB
Ȃ肢BT͂ǂ悤B͉lցB

2004/04/10 (Sat)
@ߑO͉lցBFXw؂̃J[hƃh͌
BƂ́ccIĂ邩ccBăWI^B


////////////////////////////////////////////////////////////////////
/*                         A                             */
http://www.kab-studio.biz/Novel/Fuga/index.html

@\́@Ɩ@@|P|

uAĂ˂Ắv
uꕷOĂ[́IIv
@ƌ؂茋ԁBM̂͑MAł͂Ȃ򖗁B̌́A
`ς̓~߂B
@ǂ̊OAт̒œl͒Ք荇Bn̕\
ɂ͗]TǍ𗼎ŉ镑͕Ǩ`Ă
B
@͕ĕёނB
uށv
@͂ɓݍݓUĂ݂邪ÂɂP[g܂
͌ނĂB
@ɉ͓ݍށBg̏dAr͂ɂ͎M
BɓB
@ÃXebvŕ͂ɌނA؂̉e։荞ށB؁X
ADŕsAɂւ炸̑fB
u܂Awɖڂ̂H@Ƃ݂ɔwł̂
v
u͎CÂA͂v
@̑ʂɉ荞݁A˂BA͗]T]B
uIbv
@炳܂ɉȊ邪A͂ĂߑB
ûȂv
uȁAȂɂv
uv
@ݍށBȂǌĂȂBނuvƌxĂB
Ȃ̂ɁB̌UxB͂]āAxKE̋
BAAɗB
uĂȂ[́v
                                                              ()


////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

@Version 13.16
NCbN\[g̃R[fBO

uO̓NCbN\[g̃ASYɂĐ܂v
w̓R[fBOHx
uBNCbN\[gۂɃvOɂĂ݂܂BƕG
璍ӂĂˁv

void QuickSortImpl( int *p_piAry, int p_iFirst, int p_iLast )
{
    // Zp[^ƂȂl擾B
    int iSeparator
         = p_piAry[p_iFirst + ( ( p_iLast - p_iFirst ) / 2 )];
    // CfbNX擾B
    int iLeft = p_iFirst;
    int iRight = p_iLast;

    // [vB
    while( 1 )
    {
        // 猩āAZp[^ȏ̒l܂ňړB
        while( p_piAry[iLeft] < iSeparator )
        {
            ++iLeft;
        }

        // E猩āAZp[^ȉ̒l܂ňړB
        while( iSeparator < p_piAry[iRight] )
        {
            --iRight;
        }

        if( iRight <= iLeft )
        {
            // Ă̂Ŕ܂B
            break;
        }

        // ւB
        int iTemp = p_piAry[iLeft];
        p_piAry[iLeft] = p_piAry[iRight];
        p_piAry[iRight] = iTemp;

        // ւӏ΂߁AЂƂi߂܂B
        ++iLeft;
        --iRight;
    }

    if( p_iFirst < iLeft - 1 )
    {
        // ̗vf 1 ΁A
        // ă\[g܂B
        QuickSortImpl( p_piAry, p_iFirst, iLeft - 1 );
    }

    if( iRight + 1 < p_iLast )
    {
        // E̗vf 1 ΁A
        // Eă\[g܂B
        QuickSortImpl( p_piAry, iRight + 1, p_iLast );
    }
}

// ĂяoB
void DoQuickSort( int *p_piAry, int p_iSize )
{
    // z̐擪ƍŌn܂B
    QuickSortImpl( p_piAry, 0, p_iSize - 1 );
}

wĂяoHx
u DoQuickSort() ͊OĂяo߂̊֐BĂł 
QuickSortImpl() ́AۂɃNCbN\[g֐v
wH@ȂłӂɕẮHx
u QuickSortImpl() ̐Ă̕ȁBO
悤ɁANCbN\[ǵA傫ƏɕāAāA
Ă̂JԂ܂v
wёւĕĂ̌JԂˁx
uŁÂPZbg̏ QuickSortImpl() 悤ɂ
v
wHx
u܂A QuickSortImpl() ĂōEɕƁAӂɕ
ꂼ̏A܂ QuickSortImpl() Ăł̒ŏ
ɂĂ܂v
wA QuickSortImpl() ̒ QuickSortImpl() Ă
ccȂƂł񂾁x
uB֐̒玩Ɠ֐ĂׂłB́Ag
ԂƂyċNĂяozČ܂v
wтAˁx
uP͗L牯ĂĂˁB̗ł́AċAĂяo邱
ƂŃvOȗĂ܂v
wċAĂяogȂƂǂȂ́Hx
uQd[vŉ񂷂ƂɂȂ邩ȁBƑςccv
wccH@ŁA DoQuickSort() ͂Ȃł́Hx
uA QuickSortImpl() ͕xɌĂԂłB̂ƂA
́qzrƁq͈͂̍[rƁq͈͂̉E[rn
v
włǂ͈̔͂\[g邩Ă킯ˁx
uƁBłAԍŏɌĂԂƂ́Aӂɔ͈͂œn
͖̂ʓ|B܂ŒʂqzrƁqTCYr̕킩₷v
w DoQuickSort() ͂̔zƃTCYł̒Łccx

    QuickSortImpl( p_piAry, 0, p_iSize - 1 );

wŏ́̕AŜAԍ[ 0 ƁAԉE[́ATCY - 1 
nĂ킯ˁx
uƁB QuickSortImpl() 𒼐ڌĂłȂ񂾂ǁA
̕킩₷ˁv
w܂łˁx
uāA̎gpv

void Use_DoQuickSort()
{
    int iAry[5];
    iAry[0] = 4;
    iAry[1] = 9;
    iAry[2] = 3;
    iAry[3] = 5;
    iAry[4] = 8;

    // \[g܂B
    DoQuickSort( iAry, 5 );

    for( int iF1 = 0; iF1 < 5; ++iF1 )
    {
        TRACE( "%d ", iAry[iF1] );
    }
    TRACE( "\n" );
    // 3 4 5 8 9 
}

w̕ӂ͂ʂˁx
uł́A QuickSortImpl() ̒gɂČĂ݂܂B܂q傫r
Ɓqr̋EɂȂ鐔擾܂v

    // Zp[^ƂȂl擾B
    int iSeparator
         = p_piAry[p_iFirst + ( ( p_iLast - p_iFirst ) / 2 )];

w͈ʒuIɐ^񒆂Ă킯ˁx
uO񌾂悤ɁASoČŊāAϒlô肾
v
włƏdccx
uNCbN\[g͂̐ɂđĂ邩ˁÂ炢
̂肩Bł͎A[vJnv

    // [vB
    while( 1 )

w[vˁx
uE猩ĂĂA for ͂
₷ȁv
w͍猩ĂƂˁx

        // 猩āAZp[^ȏ̒l܂ňړB
        while( p_piAry[iLeft] < iSeparator )
        {
            ++iLeft;
        }

wH@rp̊֐ĎgȂ́Hx
ugĂǁAƂ̋LqGɂȂ邩ȁB̊֌W
邵v

        // E猩āAZp[^ȉ̒l܂ňړB
        while( iSeparator < p_piAry[iRight] )
        {
            --iRight;
        }

wE猩Ă̂ˁBH@A == ȂA̋tĂ
Ȃ񂾁x
û̓ASY̏dvȉӏAƒׂĂς
v
wƓccx
úAEƍ̃`FbNv
wŖ[v甲̂ˁx
u͍E̓ւv
w͂Ȃ݂ˁx
u[v̍Ōł́AւӏxȂ悤ɁAЂƂi
߂܂v

        // ւӏ΂߁AЂƂi߂܂B
        ++iLeft;
        --iRight;

wĂ傤Ȃ̂ˁx
uāA[vIAEɕĂꂼ܂Ăяo܂B
܂v

    if( p_iFirst < iLeft - 1 )
    {
        // ̗vf 1 ΁A
        // ă\[g܂B
        QuickSortImpl( p_piAry, p_iFirst, iLeft - 1 );
    }

u if ́AƉEIiKŁA̋E̍Qȏゾ
Aă\[g܂v
wꂪċAĂяôƂˁBP̎Ƀ\[gȂ̂́ccӖȂ
ˁx
uƁBEv

    if( iRight + 1 < p_iLast )
    {
        // E̗vf 1 ΁A
        // Eă\[g܂B
        QuickSortImpl( p_piAry, iRight + 1, p_iLast );
    }

uĕĂāAȏ㕪łȂȂI
v

/*
    Preview Next Story!
*/
wA₱ccx
uċAĂяoƕGɂȂ邩ˁv
wAPČĂccx
uKv͂Ȃ񂾂ǂˁv
wHx
uƂ킯Ŏv
 Version 13.17 ^CŃNCbN\[g 
wɂÂIx
u̓^Cɂłv
wIHH@ʍłIHx


////////////////////////////////////////////////////////////////////
/*                QOOSNSPXij̍XV                */
http://www.kab-studio.biz/index.html

E₷
@߂ȂB̏T͂x݂܂ccāȀTAقƂ́[
J܂I@̂߂̏[dԂĂƂŋā`B


////////////////////////////////////////////////////////////////////
/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.biz/nikki2/
EwǓo^Ƃɂ͂̃y[WōsȂĂB
http://www.mag2.com/m/0000012198.htm
E͎ōsȂĂB
EobNio[͂̃y[Wɂ܂B
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.biz/Info/MailMagazine/

    (C)KAB-studio 1999 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

