Sorting
The standard library provides utilities for in-place sorting slices. Its basic usage is as follows.
test "sorting" {
var data = [_]u8{ 10, 240, 0, 0, 10, 5 };
std.mem.sort(u8, &data, {}, comptime std.sort.asc(u8));
try expect(eql(u8, &data, &[_]u8{ 0, 0, 5, 10, 10, 240 }));
std.mem.sort(u8, &data, {}, comptime std.sort.desc(u8));
try expect(eql(u8, &data, &[_]u8{ 240, 10, 10, 5, 0, 0 }));
}
std.sort.asc
and .desc
create a comparison function for the given type at comptime; if non-numerical
types should be sorted, the user must provide their own comparison function.
std.mem.sort
has a best case of O(n), and an average and worst case of O(n*log(n)).