15 template <
typename Container,
typename Comparer>
16 static void QuickSort(Container& inout_container,
const Comparer& comparer = Comparer());
19 template <
typename T,
typename Comparer>
24 template <
typename Container,
typename Comparer>
25 static void InsertionSort(Container& inout_container,
const Comparer& comparer = Comparer());
28 template <
typename T,
typename Comparer>
34 INSERTION_THRESHOLD = 16
38 template <
typename Element,
typename Comparer>
39 PL_ALWAYS_INLINE
constexpr static auto DoCompare(
const Comparer& comparer,
const Element& a,
const Element& b,
int) ->
decltype(comparer.Less(a, b))
41 return comparer.Less(a, b);
43 template <
typename Element,
typename Comparer>
44 PL_ALWAYS_INLINE
constexpr static auto DoCompare(
const Comparer& comparer,
const Element& a,
const Element& b,
long) ->
decltype(comparer(a, b))
46 return comparer(a, b);
48 template <
typename Element,
typename Comparer>
49 PL_ALWAYS_INLINE
constexpr static bool DoCompare(
const Comparer& comparer,
const Element& a,
const Element& b)
53 return DoCompare(comparer, a, b, 0);
57 template <
typename Container,
typename Comparer>
58 static void QuickSort(Container& inout_container, plUInt32 uiStartIndex, plUInt32 uiEndIndex,
const Comparer& comparer);
60 template <
typename Container,
typename Comparer>
61 static plUInt32 Partition(Container& inout_container, plUInt32 uiLeft, plUInt32 uiRight,
const Comparer& comparer);
64 template <
typename T,
typename Comparer>
65 static void QuickSort(
plArrayPtr<T>& inout_arrayPtr, plUInt32 uiStartIndex, plUInt32 uiEndIndex,
const Comparer& comparer);
67 template <
typename T,
typename Comparer>
68 static plUInt32 Partition(T* pPtr, plUInt32 uiLeft, plUInt32 uiRight,
const Comparer& comparer);
71 template <
typename Container,
typename Comparer>
72 static void InsertionSort(Container& container, plUInt32 uiStartIndex, plUInt32 uiEndIndex,
const Comparer& comparer);
74 template <
typename T,
typename Comparer>
75 static void InsertionSort(
plArrayPtr<T>& inout_arrayPtr, plUInt32 uiStartIndex, plUInt32 uiEndIndex,
const Comparer& comparer);
static void QuickSort(Container &inout_container, const Comparer &comparer=Comparer())
Sorts the elements in container using a in-place quick sort implementation (not stable).
Definition Sorting_inl.h:3
static void InsertionSort(Container &inout_container, const Comparer &comparer=Comparer())
Sorts the elements in container using insertion sort (stable and in-place).
Definition Sorting_inl.h:21