|
b6817692
|
2011-08-17T12:14:47
|
|
tsort.c: fix include of common.h
Signed-off-by: schu <schu-github@schulog.org>
|
|
c2db984b
|
2011-07-09T13:27:08
|
|
tsort: Remove unused CLZ methods
|
|
ae2e4c6a
|
2011-07-09T08:41:02
|
|
win32: replace usage of _MSV_VER with _MSC_VER
|
|
d4cb0ee8
|
2011-07-07T18:14:53
|
|
tsort: remove unused but set variable
Signed-off-by: schu <schu-github@schulog.org>
|
|
417a581d
|
2011-07-07T13:38:47
|
|
tsort: fix wrong header inclusion
|
|
bdcc4611
|
2011-07-07T10:11:00
|
|
Fix MSVC compilation warnings
|
|
de18f276
|
2011-07-07T01:46:20
|
|
vector: Timsort all of the things
Drop the GLibc implementation of Merge Sort and replace it with Timsort.
The algorithm has been tuned to work on arrays of pointers (void **),
so there's no longer a need to abstract the byte-width of each element
in the array.
All the comparison callbacks now take pointers-to-elements, not
pointers-to-pointers, so there's now one less level of dereferencing.
E.g.
int index_cmp(const void *a, const void *b)
{
- const git_index_entry *entry_a = *(const git_index_entry **)(a);
+ const git_index_entry *entry_a = (const git_index_entry *)(a);
The result is up to a 40% speed-up when sorting vectors. Memory usage
remains lineal.
A new `bsearch` implementation has been added, whose callback also
supplies pointer-to-elements, to uniform the Vector API again.
|