Hi5 Interview Question
Accountants/* quicksort */
def _partition_( arr, l, r ){
v = arr[r]
i = l
j = r - 1
while ( true ){
while ( arr[i] < v ){ i += 1 }
while ( arr[j] > v ){ j -= 1 }
break( i >= j )
t = arr[i] ; arr[i] = arr[j]; arr[j] = t
}
t = arr[i] ; arr[i] = arr[r]; arr[r] = t
i // return
}
def _qs_(arr, l, r ){
if ( l >= r ) return
// now here
i = _partition_(arr,l,r)
_qs_(arr,l,i-1)
_qs_(arr,i+1,r)
}
def quicksort( arr ){
_qs_(arr, 0, size(arr) - 1)
}
l = list( [0:13] ) as { random(100) }
println( l )
quicksort(l)
println(l)
A working 3-line python code for QuickSort.
Now this is the power of Python. Expressiveness!!!
A Bigger version
- LLOLer August 27, 2009