Zig 0.17.0-dev (Split by item)

Shortcut keys
?
Show these tips
S
Focus search field
Esc
Clear focus & close tips
U
Jump to source code
↑
Move up in search results
↓
Move down in search results
↵
Go to active search result
This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig standard library. Private Function

partitionEqual

Private Function
std.sort.pdq.partitionEqual
fn partitionEqual(a: usize, b: usize, pivot: usize, context: anytype) usize

partitions items into elements equal to items[pivot] followed by elements greater than items[pivot].

it assumed that items[a..b] does not contain elements smaller than the items[pivot].

Params

  • a: usize
  • b: usize
  • pivot: usize
  • context

File

sort/pdq.zig:259
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
fn partitionEqual(a: usize, b: usize, pivot: usize, context: anytype) usize {
    // move pivot to the first place
    context.swap(a, pivot);

    var i = a + 1;
    var j = b - 1;

    while (true) {
        while (i <= j and !context.lessThan(a, i)) i += 1;
        while (i <= j and context.lessThan(a, j)) j -= 1;
        if (i > j) break;

        context.swap(i, j);
        i += 1;
        j -= 1;
    }

    return i;
}