39template <
class T,
class LessThan>
45 for (i = 0; i < size-1; i++){
47 for (j = i+1; j < size; j++){
48 if (lt(array[j], array[best_i]))
51 tmp = array[i]; array[i] = array[best_i]; array[best_i] = tmp;
54template <
class T>
static inline void selectionSort(T* array,
int size) {
57template <
class T,
class LessThan>
58void sort(T* array,
int size, LessThan lt)
64 T pivot = array[size / 2];
70 do i++;
while(lt(array[i], pivot));
71 do j--;
while(lt(pivot, array[j]));
75 tmp = array[i]; array[i] = array[j]; array[j] = tmp;
79 sort(&array[i], size-i, lt);
82template <
class T>
static inline void sort(T* array,
int size) {
83 sort(array, size, LessThan_default<T>()); }
90template <
class T,
class LessThan>
void sort(
vec<T>& v, LessThan lt) {
#define ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_END
void sort(T *array, int size, LessThan lt)
void selectionSort(T *array, int size, LessThan lt)
bool operator()(T x, T y)