Bucket sort is a distribution sorting algorithm that works by distributing the elements of an array into a number of buckets. Each bucket is then sorted individually, either using a different sorting algorithm or by recursively applying the bucket sorting algorithm. It is mainly useful when the input is uniformly distributed over a range, such as floating point numbers between 0 and 1.