A sorting technique that is used when the range of keys is relatively small. An array of pigeonholes (buckets, chunks of memory) is reserved for each possible key value. The records from the unsorted list are scanned and copied into their respective pigeonholes based on their key values. Then, the contents of the pigeonholes are copied in sequence to the final destination. See sort algorithm.