Something went wrong. Try again.
An experiment in static, refcounted, procedural language with ownership
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152fn main() unit = { let mut slice = [1, 3, 42, 487, 5, 66, 4055, 33] print("Before: ") slice.print() quick-sort(&mut slice) print("After: ") slice.print()}fn quick-sort(slice: &mut []int) unit = { let len = slice.len if len < 2 { return } let pivot-idx = partition(&mut slice) quick-sort(&mut slice.[0..pivot-idx]) quick-sort(&mut slice.[pivot-idx + 1..len])}fn partition(slice: &mut []int) uint = { let len = slice.len let pivot-idx = len / 2 let last-idx = len - 1 slice.swap(pivot-idx, last-idx) let mut store-idx = 0 let mut i = 0 for if i < last-idx { if slice.[i] < slice.[last-idx] { slice.swap(i, store-idx) store-idx += 1 } i += 1 } slice.swap(store-idx, len - 1) store-idx}fn print(slice: &[]int) unit = { let mut i = 0 for if i < slice.len { print("{slice.[i]} ") i += 1 } println()}