Example #1
0
def partition(sequence, i, j):
    pivot = i
    i += 1
    j -= 1
    while i < j:
        while i < j and sequence[i] < sequence[pivot]:
            i += 1
        while i < j and sequence[j] > sequence[pivot]:
            j -= 1
        basic.swap(sequence, i, j)
    if sequence[i] >= sequence[pivot]:
        i -= 1
    basic.swap(sequence, pivot, i)
    return i
Example #2
0
def partition(sequence, i, j):
    pivot = i
    i += 1
    j -= 1
    while i < j:
        while i < j and sequence[i] < sequence[pivot]:
            i += 1
        while i < j and sequence[j] > sequence[pivot]:
            j -= 1
        basic.swap(sequence, i, j)
    if sequence[i] >= sequence[pivot]:
        i -= 1
    basic.swap(sequence, pivot, i)
    return i
Example #3
0
def partition(sequence, i, j):
    basic.swap(sequence, i, median(sequence, i, j))
    pivot = i
    i += 1
    k = i
    j -= 1
    while i < j:
        if sequence[i] < sequence[pivot]:
            basic.swap(sequence, k, i)
            i += 1
            k += 1
        elif sequence[i] > sequence[pivot]:
            basic.swap(sequence, i, j)
            j -= 1
        else:
            i += 1
    if sequence[j] == sequence[pivot]:
        j += 1
    basic.swap(sequence, pivot, k - 1)
    return k - 1, j
Example #4
0
def partition(sequence, i, j):
    basic.swap(sequence, i, median(sequence, i, j))
    pivot = i
    i += 1
    k = i
    j -= 1
    while i < j:
        if sequence[i] < sequence[pivot]:
            basic.swap(sequence, k, i)
            i += 1
            k += 1
        elif sequence[i] > sequence[pivot]:
            basic.swap(sequence, i, j)
            j -= 1
        else:
            i += 1
    if sequence[j] == sequence[pivot]:
        j += 1
    basic.swap(sequence, pivot, k - 1)
    return k - 1, j