|
The Bead sort is a natural sorting algorithm, developed by Joshua J. Arulanandham, Cristian S. Calude and Michael J. Dinneen in 2002, and published in The Bulletin of the European Association for Theoretical Computer Science. Both digital and analog hardware implementations of Bead sort can achieve a sorting time of O(n); however, the implementation of this algorithm tends to be significantly slower in software and can only be used to sort lists of positive integers. In computer science and mathematics, a sorting algorithm is an algorithm that puts elements of a list in a certain order. ...
For the Cusco album, see 2002 (album). ...
The European Association for Theortical Computer Science is an international organization founded in 1972. ...
A digital system is one that uses numbers, especially binary numbers, for input, processing, transmission, storage, or display, rather than a continuous spectrum of values (an analog system) or non-numeric symbols such as letters or icons. ...
An analog or analogue signal is any continuously variable signal. ...
Hardware is the general term that is used to describe physical artifacts of a technology. ...
...
Big O notation is a mathematical notation used to describe the asymptotic behavior of functions. ...
Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ...
Natural number can mean either a positive integer (1, 2, 3, 4, ...) or a non-negative integer (0, 1, 2, 3, 4, ...). Natural numbers have two main purposes: they can be used for counting (there are 3 apples on the table), or they can be used for ordering (this is...
Algorithm Overview
Figure 1: Suspended beads on vertical poles.
Figure 2: The beads have been allowed to fall. The Bead sort operation can be compared to the manner in which beads slide on parallel poles, such as on an abacus. However, each pole may have a distinct number of beads. Initially, it may be helpful to imagine the beads suspended on vertical poles. In Figure 1, such an arrangement is displayed using n=5 rows of beads on m=4 vertical poles. The numbers to the right of each row indicate the number that the row in question represents; rows 1 and 2 are representing the positive integer 3 (because they each contain three beads) while the top row represents the positive integer 2 (as it only contains two beads).[1] Image File history File links BeadSort-Figure1. ...
Image File history File links BeadSort-Figure2. ...
This article is about the calculator. ...
If we then allow the beads to fall, the rows now represent the same integers in sorted order. Row 1 contains the largest number in the set, while row n contains the smallest. If the above-mentioned convention of rows containing a series of beads on poles 1..k and leaving poles k+1..m empty has been followed, it will continue to be the case here. The action of allowing the beads to "fall" in our physical example has allowed the larger values from the higher rows to propagate to the lower rows. If the value represented by row a is smaller than the value contained in row a+1, some of the beads from row a+1 will fall into row a; this is certain to happen, as row a does not contain beads in those positions to stop the beads from row a+1 from falling.
Complexity The Bead sort can be implemented with three general levels of complexity, among others: - O(1): The beads are all moved simultaneously in the same time unit, as would be the case with the simple physical example above.
- O(n): The beads are moved one row at a time. This is the case used in the analog and digital hardware solutions.
- O(S), where S is the sum of the integers in the input set: Each bead is moved individually. This is the case when the Bead Sort is implemented without a mechanism to assist in finding empty spaces below the beads, such as in software implementations.
Like the Pigeonhole sort, Bead sort is unusual in that it can perform faster than O(nlogn), the fastest performance possible for a comparison sort. This is possible because the key for a Bead sort is always a positive integer and Bead sort exploits its structure. Big O notation is a mathematical notation used to describe the asymptotic behavior of functions. ...
Big O notation is a mathematical notation used to describe the asymptotic behavior of functions. ...
Big O notation is a mathematical notation used to describe the asymptotic behavior of functions. ...
Pigeonhole sorting takes linear time (O(n)), which is the best possible performance for a sort algorithm since one must inevitably look at each of the elements being sorted at least once, regardless of the sorting algorithm. ...
Big O notation is a mathematical notation used to describe the asymptotic behavior of functions. ...
Logarithms to various bases: is to base e, is to base 10, and is to base 1. ...
A comparison sort is a particular type of sorting algorithm; a number of well-known algorithms are comparison sorts. ...
Note - ^ By convention, a row representing the positive integer k should have beads on poles 1..k and poles k+1..m should be empty. This is not a strict requirement, but will most likely simplify implementation.
External links |