Class IntIntTimsortDescendingKernel

java.lang.Object
io.deephaven.engine.table.impl.sort.timsort.IntIntTimsortDescendingKernel

public class IntIntTimsortDescendingKernel extends Object
This implements a timsort kernel for Integers.

bugs.python.org and Wikipedia do a decent job of describing the algorithm.

  • Method Details

    • createContext

      public static <SORT_VALUES_ATTR extends Any, PERMUTE_VALUES_ATTR extends Any> IntIntTimsortDescendingKernel.IntIntSortKernelContext<SORT_VALUES_ATTR,PERMUTE_VALUES_ATTR> createContext(int size)
    • sort

      public static <SORT_VALUES_ATTR extends Any, PERMUTE_VALUES_ATTR extends Any> void sort(IntIntTimsortDescendingKernel.IntIntSortKernelContext<SORT_VALUES_ATTR,PERMUTE_VALUES_ATTR> context, WritableIntChunk<PERMUTE_VALUES_ATTR> valuesToPermute, WritableIntChunk<SORT_VALUES_ATTR> valuesToSort)
      Sort the values in valuesToSort permuting the valuesToPermute chunk in the same way.

      The offsetsIn chunk is contains the offset of runs to sort in valuesToPermute; and the lengthsIn contains the length of the runs. This allows the kernel to be used for a secondary column sort, chaining it together with fewer runs sorted on each pass.