cpp-sort
ips4o
cpp-sort | ips4o | |
---|---|---|
1 | 2 | |
599 | 159 | |
- | - | |
7.1 | 1.8 | |
about 1 month ago | over 3 years ago | |
C++ | C++ | |
MIT License | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cpp-sort
-
Hardcore metaprogramming in the wild
I've got that cursed piece of code where I use multiplication to affect overload resolution: https://github.com/Morwenn/cpp-sort/blob/develop/include/cpp-sort/adapters/hybrid_adapter.h
ips4o
-
Hoare’s Rebuttal and Bubble Sort’s Comeback
A while ago I was tinkering with Quicksort and avoiding branch mispredictions.
https://easylang.online/blog/qsort_c.html
My implementation is pretty fast. At a size of 40 or 50, I switch to Insertion sort, and there the branchless bubblesort is significantly slower (I just tried it).
But I have to admit defeat to this SampleSort:
https://github.com/SaschaWitt/ips4o
-
Do Low-Level Optimizations Matter?
For sorting, not really. The big development in compute power is parallelism. ips4o facto (https://github.com/SaschaWitt/ips4o), if you want to sort large vectors really fast it makes more sense to sort in-place and in parallel. Parallel in-place radix sort is also choice, but way less flexible than comparison sort.
What are some alternatives?
sol2 - Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
pdqsort - Pattern-defeating quicksort.
json_struct - json_struct is a single header only C++ library for parsing JSON directly to C++ structs and vice versa
root - The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
vif - Easy, robust, and fast numerics in C++.
quicksort-blog-post
loki - A C++ Template library, developed by Andrei Alexandrescu, the author of the book Modern C++ Design.
nytm-spelling-bee - Generate anagram puzzles like Frank Longo's "Spelling Bee" as in New York Times Magazine
vrm_pp - Small C++ preprocessor library
LightGBM - A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.
eventpp - Event Dispatcher and callback list for C++
Taskflow - A General-purpose Parallel and Heterogeneous Task Programming System