func quicksort[arr: Array] : Void do_quicksort(arr, 0, Array.size(arr)-1) func do_quicksort[arr: Array, low: I64, high: I64] : Void if low < high let i: I64 = partition(arr, low, high) do_quicksort(arr, low, i - 1) do_quicksort(arr, i + 1, high) func partition[arr: Array, low: I64, high: I64] : I64 let pivot: I64 = arr[high] let i: I64 = low - 1 for j in (low)..high if arr[j] <= pivot i = i + 1 let temp: I64 = arr[i] Array.set(arr, i, arr[j]) Array.set(arr, j, temp) let temp: I64 = arr[i + 1] Array.set(arr, i + 1, arr[high]) Array.set(arr, high, temp) return i + 1 func main[] : I64 let arr: Array = [] for i in 0..10 Array.push(arr, Math.abs(Math.urandom() % 1000)) for i in 0..Array.size(arr) print_i64(arr[i]) print("------------") quicksort(arr) for i in 0..Array.size(arr) print_i64(arr[i])