## Documentation

### Index ¶

### Constants ¶

### Variables ¶

### Functions ¶

### Types ¶

#### type Comparator ¶

type Comparator interface { // Compare will return a value indicating how this comparator // compares with the provided comparator. A negative number // indicates this comparator is less than the provided comparator, // a 0 indicates equality, and a positive number indicates this // comparator is greater than the provided comparator. Compare(Comparator) int }

Comparator defines items that can be sorted. It contains a single method allowing the compare logic to compare one comparator to another.

#### type Comparators ¶

type Comparators []Comparator

Comparators defines a typed list of type Comparator.

#### func MultithreadedSortComparators ¶

func MultithreadedSortComparators(comparators Comparators) Comparators

MultithreadedSortComparators will take a list of comparators and sort it using as many threads as are available. The list is split into buckets for a bucket sort and then recursively merged using SymMerge.

#### func SymMerge ¶

func SymMerge(u, w Comparators) Comparators

SymMerge will perform a symmetrical merge of the two provided lists. It is expected that these lists are pre-sorted. Failure to do so will result in undefined behavior. This function does make use of goroutines, so multithreading can aid merge time. This makes M*log(N/M+1) comparisons where M is the length of the shorter list and N is the length of the longer list.

#### func (Comparators) Len ¶

func (c Comparators) Len() int

Len returns an int indicating the length of this list of comparators.

#### func (Comparators) Less ¶

func (c Comparators) Less(i, j int) bool

Less returns a bool indicating if the comparator at index i is less than the comparator at index j.

#### func (Comparators) Swap ¶

func (c Comparators) Swap(i, j int)

Swap swaps the values at positions i and j.