Function heapContext [src]

Unstable in-place sort. O(n*log(n)) best case, worst case and average case. O(1) memory (no allocator required). context must have methods swap and lessThan, which each take 2 usize parameters indicating the index of an item. Sorts in ascending order with respect to lessThan.

Prototype

pub fn heapContext(a: usize, b: usize, context: anytype) void

Parameters

a: usizeb: usize

Source

pub fn heapContext(a: usize, b: usize, context: anytype) void { assert(a <= b); // build the heap in linear time. var i = a + (b - a) / 2; while (i > a) { i -= 1; siftDown(a, i, b, context); } // pop maximal elements from the heap. i = b; while (i > a) { i -= 1; context.swap(a, i); siftDown(a, a, i, context); } }