Algorithm 489

swMATH ID: 36274
Software Authors: Floyd, R. W.; Rivest, R. L.
Description: Algorithm 489: the algorithm SELECT - for finding the ith smallest of n elements. SELECT will rearrange the values of array segment X[L: R] so that X[K] (for some given K; L ≤ K ≤ R) will contain the (K-L+1)-th smallest value, L ≤ I ≤ K will imply X[I] ≤ X[K], and K ≤ I ≤ R will imply X[I] ≥ X[K. While SELECT is thus functionally equivalent to Hoare’s algorithm FIND [1], it is significantly faster on the average due to the effective use of sampling to determine the element T about which to partition X. The average time over 25 trials required by SELECT and FIND to determine the median of n elements was found experimentally to be: n 500 1000 5000 10000 SELECT 89 ms. 141 ms. 493 ms. 877 ms. FIND 104 ms. 197 ms. 1029 ms. 1964 ms. The arbitrary constants 600, .5, and .5 appearing in the algorithm minimize execution time on the particular machine used. SELECT has been shown to run in time asymptotically proportional to N + min (I, N-I), where N = L - R + 1 and I = K - L + 1. A lower bound on the running time within 9 percent of this value has also been proved [2]. Sites [3] has proved SELECT terminates
Homepage: https://dl.acm.org/doi/10.1145/360680.360694
Related Software: Find; Quicksort; Qhull; TVR-DART; ClustalW; ProbCons; Biostrings; T-coffee; MUSCLE; MUMMALS; MAFFT; QuadProgBB; Knapsack; CPLEX; Matlab; AS 307; Algorithm 347; BRENT
Cited in: 12 Documents

Citations by Year