burstsort4j is a Java implementation of the burstsort algorithm. There is an implementation of both the original Burstsort, which is quite fast but not particularly memory efficient, and the engineered Burstsort, which is extremely memory efficient and about as fast as the original in most cases. Burstsort typically outperforms other sorts for most data sets.
Both single-threaded and multi-threaded implementations are available, where the multi-threaded method will utilize all available processor cores using a simple thread pool executor. In this mode of operation, the buckets to be sorted are assigned to jobs and sorted in parallel.
Following the addition of the new engineered algorithm, an implementation of the intermediate version will be created, namely the CP-burstsort, which is faster than the original algorithm but not necessarily more memory efficient. Ultimately this library will have both a fast implementation and a memory efficient implementation.
In addition to burstsort, this library contains a Java implementation of the multikey quicksort algorithm. It takes a median of three approach to find the pivot, and delegates to insertion sort for small sublists. There is also a basic quicksort implementation for instances of Comparable, as well as a basic insertion sort.
DocumentationCheck out the wiki pages for additional information on burstsort4j.
| UsingBurstsort4j | RunningBenchmarks |