Application of the method of buckets to the selection problem
Date of Original Version
We present a selection algorithm called BucketSelect which runs faster than Floyd-Rivest's Select because, while both algorithms use approximately the same number of comparisons, BucketSelect uses far fewer data moves (asymptotically zero). Both methods determine an interval in which the kth smallest is expected to lie with high probability. The key difference between the two approaches is that Select rearranges the entire data set about two pivot elements, while BucketSelect simply places all items that lie in a critical interval into an auxilliary bucket. In the extremely unlikely event that the item sought does not lie in this critical interval, Select is used to find it. The expected running time of BucketSelect is governed by the time taken to place the items in this bucket. A performance evaluation was done which shows that the running time of BucketSelect is about 60% of Select for finding the median for n in the range from 50,000 to 250,000 items. The asymptotic percentage is shown to be 53.6%.
Applied Computing: Technological Challenges of the 1990's
Hyslop, Gary A., and Edmund A. Lamagna. "Application of the method of buckets to the selection problem." Applied Computing: Technological Challenges of the 1990's , (1992): 1167-1172. doi:10.1145/130069.130145.