func quicksort[arr: Array] : I64 do_quicksort(arr, 0, Array.size(arr)-1) func do_quicksort[arr: Array, low: I64, high: I64] : I64 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 = [340, 252, 352, 117, 650, 652, 322, 175, 714, 268, 725, 664] 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])