
An unstable sorting algorithm generally will not. A stable sorting algorithm will keep the original order of the last names for people who have the same first name. If the list is sufficiently large, some people are bound to have the same first name but different last names. For example, suppose you have a list of names that you want to sort by first name only, ignoring the last name.
Xsort windows code#
The documentation provided here and in the source code makes use of some notions and terminology which are common to sorting algorithms or algorithms in general. Other algorithms such as radix sort or bucket sort are not comparison sorts. Most of the algorithms available here are comparison-based sorting algorithms. Tree Sort - An implementation of a red-black tree is available in the Phobos standard library.Smooth Sort by deadalnix - A natural variant of heap sort using Leonardo heaps.Radix Sort by Per Nordlöw - Supports integer and floating-point element types.Here are a few other sorting algorithms implemented by others for the D programming language: Timsortlow - Variant of Timsort with O(n/1024) space complexity.Timsort - Standard implementation without any special tricks.Stable Sort - Natural merge sort with O(lg^2 n) space complexity.Stable Quick Sort (3-way stable quick sort with O(lg n) or O(lg^2 n) space complexity).Shell Sort - Provides concurrent implementation.Selection Sort - Implemented to work with forward ranges.Merge Sort - O(n) or O(n/2) space complexity.Introsort - A hybrid algorithm which uses a mix of quicksort and heapsort to achieve O(n log n) running time in the worst case.Insertion Sort - Utilizing linear, binary, gallop, or trot search.In-Place Merge Sort - O(n lg^2 n) time complexity.Heap Sort - Six variants: binary or ternary tree sift-down, sift-up, or bottom-up traversal.


Hash Sort - Variant of counting sort which utilizes a hash table.Forward Sort - In-place sort for forward ranges utilizing a combination of quick sort + comb sort.Cycle Sort - Implemented to work with forward ranges.Comb Sort - Standard implementation or final pass with linear/gallop insertion sort.Bubble Sort - Implemented to work with forward ranges.Any single module may be used independently without any other modules installed. AlgorithmsĪll modules are provided with documentation and unit tests. Check out older commits for the old README and benchsort.d tool. As such, there may be some inconsistencies or missing information. NOTICE: This repository is undergoing a gradual transition to a new format. All source code is available in the public domain. XSort is a collection of sorting algorithms and related profiling tools implemented in the D programming language.
