<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># Written by Eric Martin for COMP9021


def quick_sort(L):
    quicksort(L, 0, len(L) - 1)

def quicksort(L, start, last):
    if last - start &lt; 1:
        return
    split_point = partition(L, start, last)
    quicksort(L, start, split_point - 1)
    quicksort(L, split_point + 1, last)

def partition(L, start, end):
    pivot_value = L[start]
    left_mark = start + 1
    right_mark = end
    while True:
        while left_mark &lt;=  right_mark and L[left_mark] &lt;= pivot_value:
            left_mark += 1
        while right_mark &gt; left_mark and L[right_mark] &gt;= pivot_value:
            right_mark -= 1
        if right_mark &lt;= left_mark:
            break
        if left_mark != right_mark:
            L[left_mark], L[right_mark] = L[right_mark], L[left_mark]
            left_mark += 1
            rigth_mark -= 1
    if left_mark == right_mark:
        right_mark -= 1
    if right_mark &gt; start:
        L[start], L[right_mark] = L[right_mark], L[start]
    return right_mark
                    

                    
</pre></body></html>