9#ifndef satoko__utils__sort_h
10#define satoko__utils__sort_h
15static inline void select_sort(
void **data,
unsigned size,
16 int (*comp_fn)(
const void *,
const void *))
18 unsigned i, j, i_best;
21 for (i = 0; i < (
size - 1); i++) {
23 for (j = i + 1; j <
size; j++) {
24 if (comp_fn(data[j], data[i_best]))
28 data[i] = data[i_best];
33static void satoko_sort(
void **data,
unsigned size,
34 int (*comp_fn)(
const void *,
const void *))
37 select_sort(data, size, comp_fn);
39 void *pivot = data[
size / 2];
47 }
while (comp_fn(data[i], pivot));
50 }
while (comp_fn(pivot, data[j]));
52 if ((
unsigned) i >= j)
59 satoko_sort(data, (
unsigned) i, comp_fn);
60 satoko_sort(data + i, (size - (
unsigned) i), comp_fn);
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.