Beispiel #1
0
    private static int Partition(System.Int32[] array, int left, int right, int pivotIndex)
    {
        int i = array[pivotIndex];

        QuickSortProgram.Swap(array, pivotIndex, right);
        int j = left;
        int k = left;

        for (;;)
        {
            if (!(k < right))
            {
                break;
            }
            else
            {
            }
            if (!(array[k] > i))
            {
                QuickSortProgram.Swap(array, j, k);
                j = (j + 1);
            }
            else
            {
            }
            k = (k + 1);
        }
        QuickSortProgram.Swap(array, right, j);
        return(j);
    }
Beispiel #2
0
    private static int Partition(System.Int32[] array, int left, int right, int pivotIndex)
    {
BasicBlock_13:
        int i = array[pivotIndex];

        QuickSortProgram.Swap(array, pivotIndex, right);
        int j = left;
        int k = left;

        goto BasicBlock_17;
BasicBlock_14:
        if (array[k] > i)
        {
            goto BasicBlock_16;
        }
        goto BasicBlock_15;
BasicBlock_15:
        QuickSortProgram.Swap(array, j, k);
        j = (j + 1);
        goto BasicBlock_16;
BasicBlock_16:
        k = (k + 1);
        goto BasicBlock_17;
BasicBlock_17:
        if (k < right)
        {
            goto BasicBlock_14;
        }
        goto BasicBlock_18;
BasicBlock_18:
        QuickSortProgram.Swap(array, right, j);
        return(j);
    }
Beispiel #3
0
    private static int Partition(System.Int32[] array, int left, int right, int pivotIndex)
    {
BasicBlock_30:
        int i = array[pivotIndex];

        QuickSortProgram.Swap(array, pivotIndex, right);
        int j = left;
        int k = left;

        goto Loop_38;
Loop_38:
        for (;;)
        {
ConditionalNode_43:
BasicBlock_34:
            if (!(k < right))
            {
                break;
Block_41:
            }
            else
            {
                goto ConditionalNode_46;
Block_42:
            }
ConditionalNode_46:
BasicBlock_31:
            if (!(array[k] > i))
            {
                goto Block_44;
Block_44:
BasicBlock_32:
                QuickSortProgram.Swap(array, j, k);
                j = (j + 1);
                goto BasicBlock_33;
            }
            else
            {
                goto BasicBlock_33;
Block_45:
            }
BasicBlock_33:
            k = (k + 1);
            continue;
        }
BasicBlock_35:
        QuickSortProgram.Swap(array, right, j);
        return(j);
    }
Beispiel #4
0
    private static int Partition(int[] array, int left, int right, int pivotIndex)
    {
        int i = array[pivotIndex];

        QuickSortProgram.Swap(array, pivotIndex, right);
        int j = left;

        for (int k = left; k < right; k++)
        {
            if (array[k] <= i)
            {
                QuickSortProgram.Swap(array, j, k);
                j++;
            }
        }
        QuickSortProgram.Swap(array, right, j);
        return(j);
    }
Beispiel #5
0
    private static int Partition(System.Int32[] array, int left, int right, int pivotIndex)
    {
        int V_0 = array[pivotIndex];

        QuickSortProgram.Swap(array, pivotIndex, right);
        int V_1 = left;
        int V_2 = left;

        goto IL_28;
        IL_12 : if (array[V_2] > V_0)
        {
            goto IL_24;
        }
        QuickSortProgram.Swap(array, V_1, V_2);
        V_1         = (V_1 + 1);
        IL_24 : V_2 = (V_2 + 1);
        IL_28 : if (V_2 < right)
        {
            goto IL_12;
        }
        QuickSortProgram.Swap(array, right, V_1);
        return(V_1);
    }
Beispiel #6
0
    private static int Partition(System.Int32[] array, int left, int right, int pivotIndex)
    {
BasicBlock_21:
        int i = array[pivotIndex];

        QuickSortProgram.Swap(array, pivotIndex, right);
        int j = left;
        int k = left;

        goto Loop_29;
Loop_29:
        for (;;)
        {
BasicBlock_25:
            if (k < right)
            {
                goto BasicBlock_22;
            }
            break;
BasicBlock_22:
            if (array[k] > i)
            {
                goto BasicBlock_24;
            }
            goto BasicBlock_23;
BasicBlock_23:
            QuickSortProgram.Swap(array, j, k);
            j = (j + 1);
            goto BasicBlock_24;
BasicBlock_24:
            k = (k + 1);
            continue;
        }
BasicBlock_26:
        QuickSortProgram.Swap(array, right, j);
        return(j);
    }
Beispiel #7
0
    private static int Partition(System.Int32[] array, int left, int right, int pivotIndex)
    {
        int  V_0;
        int  V_1;
        int  V_2;
        int  V_3;
        bool V_4;

        // No-op
        // Stack: {}
        System.Int32[] expr01 = array;
        // Stack: {expr01}
        int expr02 = pivotIndex;
        // Stack: {expr01, expr02}
        int expr03 = expr01[expr02];

        // Stack: {expr03}
        V_0 = expr03;
        // Stack: {}
        System.Int32[] expr05 = array;
        // Stack: {expr05}
        int expr06 = pivotIndex;
        // Stack: {expr05, expr06}
        int expr07 = right;

        // Stack: {expr05, expr06, expr07}
        QuickSortProgram.Swap(expr05, expr06, expr07);
        // Stack: {}
        // No-op
        // Stack: {}
        int expr0E = left;

        // Stack: {expr0E}
        V_1 = expr0E;
        // Stack: {}
        int expr10 = left;

        // Stack: {expr10}
        V_2 = expr10;
        // Stack: {}
        goto IL_35;
        // Stack: {}
IL_14:  // No-op
        // Stack: {}
        System.Int32[] expr15 = array;
        // Stack: {expr15}
        int expr16 = V_2;
        // Stack: {expr15, expr16}
        int expr17 = expr15[expr16];
        // Stack: {expr17}
        int expr18 = V_0;
        // Stack: {expr17, expr18}
        bool expr19 = expr17 > expr18;

        // Stack: {expr19}
        V_4 = expr19;
        // Stack: {}
        bool expr1D = V_4;

        // Stack: {expr1D}
        if (expr1D)
        {
            goto IL_30;
        }
        // Stack: {}
        // No-op
        // Stack: {}
        System.Int32[] expr22 = array;
        // Stack: {expr22}
        int expr23 = V_1;
        // Stack: {expr22, expr23}
        int expr24 = V_2;

        // Stack: {expr22, expr23, expr24}
        QuickSortProgram.Swap(expr22, expr23, expr24);
        // Stack: {}
        // No-op
        // Stack: {}
        int expr2B = V_1;
        // Stack: {expr2B}
        int expr2C = 1;
        // Stack: {expr2B, expr2C}
        int expr2D = expr2B + expr2C;

        // Stack: {expr2D}
        V_1 = expr2D;
        // Stack: {}
        // No-op
        // Stack: {}
IL_30:  // No-op
        // Stack: {}
        int expr31 = V_2;
        // Stack: {expr31}
        int expr32 = 1;
        // Stack: {expr31, expr32}
        int expr33 = expr31 + expr32;

        // Stack: {expr33}
        V_2 = expr33;
        // Stack: {}
        IL_35 : int expr35 = V_2;
        // Stack: {expr35}
        int expr36 = right;
        // Stack: {expr35, expr36}
        bool expr37 = expr35 < expr36;

        // Stack: {expr37}
        V_4 = expr37;
        // Stack: {}
        bool expr3B = V_4;

        // Stack: {expr3B}
        if (expr3B)
        {
            goto IL_14;
        }
        // Stack: {}
        System.Int32[] expr3F = array;
        // Stack: {expr3F}
        int expr40 = right;
        // Stack: {expr3F, expr40}
        int expr41 = V_1;

        // Stack: {expr3F, expr40, expr41}
        QuickSortProgram.Swap(expr3F, expr40, expr41);
        // Stack: {}
        // No-op
        // Stack: {}
        int expr48 = V_1;

        // Stack: {expr48}
        V_3 = expr48;
        // Stack: {}
        goto IL_4C;
        // Stack: {}
        IL_4C : int expr4C = V_3;
        // Stack: {expr4C}
        return(expr4C);
        // Stack: {}
    }
Beispiel #8
0
    private static int Partition(System.Int32[] array, int left, int right, int pivotIndex)
    {
        int  V_0;
        int  V_1;
        int  V_2;
        int  V_3;
        bool V_4;

        // No-op
        System.Int32[] expr01 = array;
        int            expr02 = pivotIndex;
        int            expr03 = expr01[expr02];

        V_0 = expr03;
        System.Int32[] expr05 = array;
        int            expr06 = pivotIndex;
        int            expr07 = right;

        QuickSortProgram.Swap(expr05, expr06, expr07);
        // No-op
        int expr0E = left;

        V_1 = expr0E;
        int expr10 = left;

        V_2 = expr10;
        goto IL_35;
IL_14:  // No-op
        System.Int32[] expr15 = array;
        int            expr16 = V_2;
        int            expr17 = expr15[expr16];
        int            expr18 = V_0;
        bool           expr19 = expr17 > expr18;

        V_4 = expr19;
        bool expr1D = V_4;

        if (expr1D)
        {
            goto IL_30;
        }
        // No-op
        System.Int32[] expr22 = array;
        int            expr23 = V_1;
        int            expr24 = V_2;

        QuickSortProgram.Swap(expr22, expr23, expr24);
        // No-op
        int expr2B = V_1;
        int expr2C = 1;
        int expr2D = expr2B + expr2C;

        V_1 = expr2D;
        // No-op
IL_30:  // No-op
        int expr31 = V_2;
        int expr32 = 1;
        int expr33 = expr31 + expr32;

        V_2 = expr33;
        IL_35 : int expr35 = V_2;
        int  expr36 = right;
        bool expr37 = expr35 < expr36;

        V_4 = expr37;
        bool expr3B = V_4;

        if (expr3B)
        {
            goto IL_14;
        }
        System.Int32[] expr3F = array;
        int            expr40 = right;
        int            expr41 = V_1;

        QuickSortProgram.Swap(expr3F, expr40, expr41);
        // No-op
        int expr48 = V_1;

        V_3 = expr48;
        goto IL_4C;
        IL_4C : int expr4C = V_3;
        return(expr4C);
    }
    private static int Partition(System.Int32[] array, int left, int right, int pivotIndex)
    {
IL_00:  // No-op
        IL_01 : System.Int32[] expr01 = array;
        IL_02 : int expr02 = pivotIndex;
        IL_03 : int expr03 = arg1[arg2];
        IL_04 : V_0        = arg1;
        IL_05 : System.Int32[] expr05 = array;
        IL_06 : int expr06 = pivotIndex;
        IL_07 : int expr07 = right;
        IL_08 : QuickSortProgram.Swap(arg0, arg1, arg2);
IL_0D:  // No-op
        IL_0E : int expr0E = left;
        IL_0F : V_1        = arg1;
        IL_10 : int expr10 = left;
        IL_11 : V_2        = arg1;
        IL_12 : goto IL_35;
IL_14:  // No-op
        IL_15 : System.Int32[] expr15 = array;
        IL_16 : int expr16  = V_2;
        IL_17 : int expr17  = arg1[arg2];
        IL_18 : int expr18  = V_0;
        IL_19 : bool expr19 = arg1 > arg2;
        IL_1B : V_4         = arg1;
        IL_1D : bool expr1D = V_4;
        IL_1F : if (arg1)
        {
            goto IL_30;
        }
IL_21:  // No-op
        IL_22 : System.Int32[] expr22 = array;
        IL_23 : int expr23 = V_1;
        IL_24 : int expr24 = V_2;
        IL_25 : QuickSortProgram.Swap(arg0, arg1, arg2);
IL_2A:  // No-op
        IL_2B : int expr2B   = V_1;
        IL_2C : short expr2C = 1;
        IL_2D : int expr2D   = arg1 + arg2;
        IL_2E : V_1          = arg1;
IL_2F:  // No-op
IL_30:  // No-op
        IL_31 : int expr31   = V_2;
        IL_32 : short expr32 = 1;
        IL_33 : int expr33   = arg1 + arg2;
        IL_34 : V_2          = arg1;
        IL_35 : int expr35   = V_2;
        IL_36 : int expr36   = right;
        IL_37 : bool expr37  = arg1 < arg2;
        IL_39 : V_4          = arg1;
        IL_3B : bool expr3B  = V_4;
        IL_3D : if (arg1)
        {
            goto IL_14;
        }
        IL_3F : System.Int32[] expr3F = array;
        IL_40 : int expr40 = right;
        IL_41 : int expr41 = V_1;
        IL_42 : QuickSortProgram.Swap(arg0, arg1, arg2);
IL_47:  // No-op
        IL_48 : int expr48 = V_1;
        IL_49 : V_3        = arg1;
        IL_4A : goto IL_4C;
        IL_4C : int expr4C = V_3;
        IL_4D : return(arg1);
    }