summaryrefslogtreecommitdiff
path: root/sorters.h
blob: 5461914b1208701aceb5aa7d522f105ba8ed9b5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef SORTERS_H
#define SORTERS_H

#include <stddef.h>

typedef int  (*cmpfun)(const void *, const void *);
typedef void (*sorterfn)(void *, size_t, size_t, cmpfun);

void musl_smoothsort(void *, size_t, size_t, cmpfun);
void musl_heapsort(void *, size_t, size_t, cmpfun);
void glibc_quicksort(void *, size_t, size_t, cmpfun);
void glibc_mergesort(void *, size_t, size_t, cmpfun);
void freebsd_qsort(void *, size_t, size_t, cmpfun);
void wikisort(void *, size_t, size_t, cmpfun);
void wikisort_ref(void *, size_t, size_t, cmpfun);
void grailsort(void *, size_t, size_t, cmpfun);
void grailsort_ref(void *, size_t, size_t, cmpfun);

extern const struct sorter {
	const char *name;
	sorterfn func;
} sorters[];

#endif