| 16 | == Boost.Algorithm.Sorting == |
| 17 | * '''Author(s):''' Steven Ross |
| 18 | * '''Version:''' |
| 19 | * '''State:''' |
| 20 | * '''Last upload:''' 2009 Jan 13 |
| 21 | * '''Links:''' [http://www.boostpro.com/vault/images/download.gif Bosst Vault] |
| 22 | * '''Description:''' The Sorting Algorithm Library provides a generic implementation of high-speed sorting algorithms that outperform those in the C++ standard in both average and worst case performance. These algorithms only work on random access iterators. |
| 23 | |
| 24 | These algorithms are hybrids using both radix and comparison-based sorting, specialized to sorting common data types, such as integers, floats, and strings. These algorithms are encoded in a generic fashion and accept functors, enabling them to sort any object that can be processed like these basic data types. |
| 25 | |
| 26 | Unlike many radix-based algorithms, the underlying Spreadsort algorithm is designed around worst-case performance, and performs better on chunky data (where it is not widely distributed), so that on real data it can perform substantially better than on random data. Conceptually, Spreadsort can sort any data for which an absolute ordering can be determined. |
| 27 | |
| 28 | --------------------------------------------------------------------------------------------------- |
| 727 | |
| 728 | --------------------------------------------------------------------------------------------------- |
| 729 | == Algorithms == |
| 730 | * [#Boost.Algorithm.Sorting Boost.Algorithm.Sorting] |
| 731 | |
| 732 | --------------------------------------------------------------------------------------------------- |
| 733 | == Broken compiler workarounds == |
| 734 | |
| 735 | --------------------------------------------------------------------------------------------------- |
| 736 | == Concurrent Programming == |
| 737 | * [#Boost.AsynchronousExecutors Boost.AsynchronousExecutors] |
| 738 | * [#Boost.Coroutines Boost.Coroutines] |
| 739 | * [#Boost.Fiber Boost.Fiber] |
| 740 | * [#Poet Poet] |
| 741 | * [#Rendez-vous Boost.Rendez-vous] |
| 742 | * [#STM STM] |
| 743 | * [#Sync Sync] |
| 744 | * [#Boost.ThreaderJoiner Boost.Threader-Joiner] |
| 745 | |
| 746 | --------------------------------------------------------------------------------------------------- |
| 747 | == Containers == |
| 748 | * [#Boost.ConstantTimeSize Boost.ConstantTimeSize] |
| 749 | * [#DenseSet DenseSet] |
| 750 | * [#Boost.InterThreads Boost.InterThreads] |
| 751 | * [#Boost.ITL Boost.ITL] |
| 752 | * [#Quartets Quartets] |
| 753 | * [#StableVector StableVector] |
| 754 | * [#Boost.Tree Boost.Tree] |
| 755 | |
| 756 | --------------------------------------------------------------------------------------------------- |
| 757 | == Correctness and testing == |
| 758 | * [#Boost.ConceptTraits Boost.ConceptTraits] |
| 759 | |
| 760 | --------------------------------------------------------------------------------------------------- |
| 761 | == Data structures == |
| 762 | * [#Boost.Fsm Boost.Fsm] |
| 763 | * [#LUID LUID] |
| 764 | * [#Quartets Quartets] |
| 765 | |
| 766 | |
| 767 | --------------------------------------------------------------------------------------------------- |
| 768 | == Function Objects and higher-order programming == |
| 769 | * [#Boost.Egg Boost.Egg] |
| 770 | |
| 771 | |
| 772 | --------------------------------------------------------------------------------------------------- |
| 773 | == Generic Programming == |
| 774 | * [#Boost.Move Boost.Move] |
| 775 | * [#Boost.SmartPtr.UniquePtr Boost.SmartPtr.UniquePtr] |
| 776 | |
| 777 | --------------------------------------------------------------------------------------------------- |
| 778 | == Image processing == |
| 779 | * [#Boost.GIL.IO Boost.GIL.IO] |
| 780 | |
| 781 | --------------------------------------------------------------------------------------------------- |
| 782 | == Input/Output == |
| 783 | * [#Frames Frames] |
| 784 | * [#Boost.Log Boost.Log] |
| 785 | |
| 786 | --------------------------------------------------------------------------------------------------- |
| 787 | == Inter-language support == |
| 788 | |
| 789 | --------------------------------------------------------------------------------------------------- |
| 790 | == Iterators == |
| 791 | |
| 792 | --------------------------------------------------------------------------------------------------- |
| 793 | == Language features emulation == |
| 794 | * [#Boost.Move Boost.Move] |
| 795 | * [#Boost.ConceptTraits Boost.ConceptTraits] |
| 796 | |
| 797 | --------------------------------------------------------------------------------------------------- |
| 798 | == Math and numerics == |
| 799 | * [#Accummulators.Ext Boost.Accummulators.Ext] |
| 800 | * [#Boost.Euclid Boost.Euclid] |
| 801 | |
| 802 | --------------------------------------------------------------------------------------------------- |
| 803 | == Memory == |
| 804 | * [#Boost.AllocPlus Boost.AllocPlus] |
| 805 | |
| 806 | --------------------------------------------------------------------------------------------------- |
| 807 | == Parsing == |
| 808 | |
| 809 | --------------------------------------------------------------------------------------------------- |
| 810 | == Portability == |
| 811 | * [#Boost.Endian Boost.Endian] |
| 812 | * [#Boost.Bitfield Boost.Bitfield] |
| 813 | |
| 814 | --------------------------------------------------------------------------------------------------- |
| 815 | == Preprocessor Metaprogramming == |
| 816 | |
| 817 | --------------------------------------------------------------------------------------------------- |
| 818 | == Programming Interfaces == |
710 | | == Containers == |
711 | | * [#Boost.ConstantTimeSize ConstantTimeSize] |
712 | | * [#DenseSet DenseSet] |
713 | | * [#Boost.InterThreads InterThreads] |
714 | | * [#Boost.ITL ITL] |
715 | | * [#Quartets Quartets] |
716 | | * [#StableVector StableVector] |
717 | | * [#Boost.Tree Tree] |
718 | | |
719 | | --------------------------------------------------------------------------------------------------- |
720 | | == Iterators == |
721 | | |
722 | | --------------------------------------------------------------------------------------------------- |
723 | | == Algorithms == |
724 | | |
725 | | --------------------------------------------------------------------------------------------------- |
726 | | == Function Objects and higher-order programming == |
727 | | * [#Boost.Egg Egg] |
728 | | |
729 | | --------------------------------------------------------------------------------------------------- |
730 | | == Generic Programming == |
731 | | * [#Boost.Move Move] |
732 | | * [#Boost.SmartPtr.UniquePtr UniquePtr] |
| 825 | == System == |
| 826 | * [#Boost.Chono Boost.Chono] |
| 827 | * [#Boost.Process Boost.Process] |
736 | | |
737 | | --------------------------------------------------------------------------------------------------- |
738 | | == Preprocessor Metaprogramming == |
739 | | |
740 | | --------------------------------------------------------------------------------------------------- |
741 | | == Concurrent Programming == |
742 | | * [#Boost.AsynchronousExecutors Asynchronous Executors] |
743 | | * [#Boost.Coroutines Coroutines] |
744 | | * [#Boost.Fiber Fiber] |
745 | | * [#Poet Poet] |
746 | | * [#Rendez-vous Rendez-vous] |
747 | | * [#STM STM] |
748 | | * [#Sync Sync] |
749 | | * [#Boost.ThreaderJoiner Threader-Joiner] |
750 | | |
751 | | --------------------------------------------------------------------------------------------------- |
752 | | == Math and numerics == |
753 | | * [#Accummulators.Ext Accummulators.Ext] |
754 | | * [#Boost.Euclid Euclid] |
755 | | |
756 | | --------------------------------------------------------------------------------------------------- |
757 | | == Correctness and testing == |
758 | | |
759 | | --------------------------------------------------------------------------------------------------- |
760 | | == Data structures == |
761 | | * [#Boost.Fsm Fsm] |
762 | | * [#LUID LUID] |
763 | | * [#Quartets Quartets] |
764 | | |
765 | | --------------------------------------------------------------------------------------------------- |
766 | | == Image processing == |
767 | | * [#Boost.GIL.IO GIL.IO] |
768 | | |
769 | | |
770 | | --------------------------------------------------------------------------------------------------- |
771 | | == Input/Output == |
772 | | * [#Frames Frames] |
773 | | * [#Boost.Log Log] |
774 | | |
775 | | --------------------------------------------------------------------------------------------------- |
776 | | == Inter-language support == |
777 | | |
778 | | --------------------------------------------------------------------------------------------------- |
779 | | == Memory == |
780 | | * [#Boost.AllocPlus AllocPlus] |
781 | | |
782 | | |
783 | | --------------------------------------------------------------------------------------------------- |
784 | | == Parsing == |
785 | | |
786 | | --------------------------------------------------------------------------------------------------- |
787 | | == Programming Interfaces == |
788 | | |
789 | | --------------------------------------------------------------------------------------------------- |
790 | | == System == |
791 | | * [#Boost.Chono Chono] |
792 | | * [#Boost.Process Process] |
793 | | |
794 | | --------------------------------------------------------------------------------------------------- |
795 | | == Portability == |
796 | | * [#Boost.Endian Endian] |
797 | | * [#Boost.Bitfield Bitfield] |