鸽巢排序
维基百科,自由的 encyclopedia
鸽巢排序(英语:Pigeonhole sort),也被称作基数分类,是一种时间复杂度为(大O符号)且在不可避免遍历每一个元素并且排序的情况下效率最好的一种排序算法。但它只有在差值(或者可被映射在差值)很小的范围内的数值排序的情况下实用[1]。
此条目或其章节极大或完全地依赖于某个单一的来源。 (2020年4月5日) |
Quick Facts 鸽巢排序, 概况 ...
Close
当涉及到多个不相等的元素,且将这些元素放在同一个“鸽巢”的时候,算法的效率会有所降低。为了简便和保持鸽巢排序在适应不同的情况,比如两个在同一个存储桶中结束的元素必然相等。
我们一般很少使用鸽巢排序,因为它很少可以在灵活性、简便性、尤是速度上超过其他排序算法。事实上,桶排序较鸽巢排序更加的实用。
鸽巢排序的一个比较有名的变形是吻合排序法(tally sort),它仅仅适用非常有限的题目,这个算法因在Programming Pearls一书中作为解决一个非常规有限集问题方法的例子而著名。
显然,快速排序可以当作只有两个(有些情况下是三个)"鸽巢"的鸽巢排序。