This repository has been archived on 2024-06-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
coffee.pygments/tests/examplefiles/carbon/example.carbon

19 lines
No EOL
360 B
Text

package Sorting api;
fn Partition[T: !Comparable & Movable](s : Slice(T)) -> i64 {
var i: i64 = -1;
for (e: T in s) {
++i;
Swap(&s[i], &e);
}
return i;
}
fn QuickSort[T: !Comparable & Movable](s : Slice(T)) {
if (s.Size() <= 1) {
return;
}
let p: i64 = Partition(s);
QuickSort(s[:p - 1]);
QuickSort(s[p + 1:]);
}