mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-28 00:02:28 +00:00
Import OpenBSD sorting algorithms
OpenBSD's qsort() function is more secure than the ones used by FreeBSD, NetBSD and MacOS. The best part is it goes faster too! This change also imports the OpenBSD mergesort() and heapsort()
This commit is contained in:
parent
dbf12c30b0
commit
d861d2787b
11 changed files with 912 additions and 215 deletions
|
@ -10,6 +10,8 @@ void *bsearch_r(const void *, const void *, size_t, size_t,
|
|||
int (*)(const void *, const void *, void *), void *)
|
||||
paramsnonnull((1, 2, 5)) dontthrow nosideeffect;
|
||||
void djbsort(int32_t *, size_t);
|
||||
void qsort3(void *, size_t, size_t, int (*)(const void *, const void *))
|
||||
paramsnonnull();
|
||||
void qsort(void *, size_t, size_t, int (*)(const void *, const void *))
|
||||
paramsnonnull();
|
||||
void qsort_r(void *, size_t, size_t,
|
||||
|
@ -18,6 +20,12 @@ void qsort_r(void *, size_t, size_t,
|
|||
void smoothsort(void *, size_t, size_t, int (*)(const void *, const void *));
|
||||
void smoothsort_r(void *, size_t, size_t,
|
||||
int (*)(const void *, const void *, void *), void *);
|
||||
int heapsort(void *, size_t, size_t, int (*)(const void *, const void *));
|
||||
int heapsort_r(void *, size_t, size_t,
|
||||
int (*)(const void *, const void *, void *), void *);
|
||||
int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
|
||||
int mergesort_r(void *, size_t, size_t,
|
||||
int (*)(const void *, const void *, void *), void *);
|
||||
int tarjan(int, const int (*)[2], int, int[], int[], int *)
|
||||
paramsnonnull((2, 4)) nocallback dontthrow;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue