C {{{ void qsort(int start, int end, int arr[]) { int s = start; int e = end; int p = answer[(start+end)/2]; while ( s <= e ) { while ( arr[s] < p ) s++; while ( arr[e] > p ) e--; if ( s <= e ) { int t = arr[s]; arr[s] = arr[e]; arr[e] = t; s++; e--; } } if ( start < e ) qsort(start, e, arr); if ( s < end ) qsort(s, end, arr); }}}} Python {{{ import random def qsort(list): if len(list) <= 1: return list pivot = random.choice(list) list.remove(pivot) return qsort([it for it in list if it < pivot]) + [pivot] + qsort([it for it in list if it >= pivot]) }}}