TL;DR: Sorting and associated concepts insertion sort shellsort bubble sort bubble sort selection sort sorting by counting quick sort sample sort heap sort merge sort bucket sorts sorting non-random data epilogue answers to exercises a notation and standard results from probability theory.
Abstract: Sorting and associated concepts insertion sort shell sort bubble sort selection sort sorting by counting quick sort sample sort heap sort merge sort bucket sorts sorting non-random data epilogue answers to exercises a notation and standard results from probability theory.
TL;DR: Through the description of five sort algorithms: bubble, select, insert, merger and quick, the time and space complexity was summarized and two categories of O(n2) and O( nlog n) could be found out.
Abstract: Sorting algorithm is one of the most basic research fields in computer science. It's goal is to make record easier to search, insert and delete. Through the description of five sort algorithms: bubble, select, insert, merger and quick, the time and space complexity was summarized. Furthermore, two categories of O(n2) and O(nlog n) could be found out. From the aspects of input sequence scale and input sequence random degree, some results were obtained based on the experiments. When the size of records is small, insertion sort or selection sort performs well. When the sequence is ordered, insertion sort or bubble sort performs well. When the size of records is large, quick sort or merge sort performs well. Different application could select appropriate sort algorithm according to these rules.
TL;DR: In this paper, a sequential mail sorting system for generating sort sequence codes, interpreting them for the sequential sorting of mail into a mail carrier walk sequence and providing for holdout mail types, which includes reading a sort plan text file for a selected postal delivery zone and determining the number of bins required in the sorting machine.
Abstract: A sequential mail sorting system for generating sort sequence codes, interpreting them for the sequential sorting of mail into a mail carrier walk sequence and providing for holdout mail types, which includes reading a sort plan text file for a selected postal delivery zone and determining the number of bins required in the sorting machine, selecting the carriers whose routes are located in such zone, generating sort sequence codes for sorting the mail in a sequential order, and generating sequence codes for holdouts and regular mail types and placing them into a sort plan binary file. The generating of sort sequence codes includes generating and interpreting sort sequence codes for holdout mail types to allow for sorting and removal of holdout mail from the mail sorting stream in the initial sorting pass of a multiple pass sequential mail sort. It also includes such a step which is performed in the final sorting pass. The system further provides a lookup procedure for hashing the sort plan binary file to allow for rapid lookup of the zip code and associated sort sequence codes included in the sort plan, whereby a sorting machine uses the sort sequence code to sort mail into an appropriate bin. The system is informed of the pass in which holdouts are to be offloaded and of the holdout special handling categories to be used in the offloading pass, and of the number of sequential sorting passes to be used.
TL;DR: In this paper, the authors describe an optimized implementation of a set of scan primitives on a single processor of a CRAY Y-MP and demonstrate that their use leads to greatly improved performance for several applications that cannot be vectorized with existing computer technology.
Abstract: The authors describe an optimized implementation of a set of scan (also called all-prefix-sums) primitives on a single processor of a CRAY Y-MP, and demonstrate that their use leads to greatly improved performance for several applications that cannot be vectorized with existing computer technology. The algorithm used to implement the scans is based on an algorithm for parallel computers. A set of segmented versions of these scans is only marginally more expensive than the unsegmented versions. The authors describe a radix sorting routine based on the scans that is 13 times faster than a Fortran version and within 20% of a highly optimized library sort routine, three operations on trees that are between 10 to 20 times faster than the corresponding C versions, and a connectionist learning algorithm that is 10 times faster than the corresponding C version for sparse and irregular networks.
TL;DR: An alternative taxonomy (to that of Knuth and others) of sorting algorithms is proposed, which introduces new insights into the connections and symmetries among sorting algorithms, and is based on a higher level, more abstract, and conceptually simple basis.
Abstract: An alternative taxonomy (to that of Knuth and others) of sorting algorithms is proposed. It emerges naturally out of a top-down approach to the derivation of sorting algorithms. Work done in automatic program synthesis has produced interesting results about sorting algorithms that suggest this approach. In particular, all sorts are divided into two categories: hardsplit/easyjoin and easysplit/hardjoin. Quicksort and merge sort, respectively, are the canonical examples in these categories. Insertion sort and selection sort are seen to be instances of merge sort and quicksort, respectively, and sinking sort and bubble sort are in-place versions of insertion sort and selection sort. Such an organization introduces new insights into the connections and symmetries among sorting algorithms, and is based on a higher level, more abstract, and conceptually simple basis. It is proposed as an alternative way of understanding, describing, and teaching sorting algorithms.