枢纽元的选择需要结合待排序数据的具体形态而定,如数据是否排序,是逆序还是正序等,下表对各种数据形态下的枢纽元选择进行了总结。
不同数据形态下枢纽元的选择对比
首元素 | 前两个互异关键字中的较大者 | 随机元素 | 所有关键字的平均值 | |
正序排序 | 退化为简单排序算法 | 退化为简单排序算法 | 退化为简单排序算法 | 枢纽元近似位于中间,一次递归数据对半分 |
反序排序 | 枢纽元近似位于中间,一次递归数据对半分 | |||
随机排列 | 退化为简单排序算法 | 退化为简单排序算法 | 退化为简单排序算法 | 枢纽元近似位于中间,一次递归数据对半分 |
注1:表中所有复杂度的值均是按照最坏情况给出。
注2:复杂度前缀分数表示实际运行时间要略少于该复杂度的值。
注3:所有时间复杂度均按最坏情况给出。
注4:对于反序排,,其每轮递归的计算量遵循 N-1,1, N-3,1,N-5,1,......。
注5:对所有关键字取平均往往以3数中值或5数中值法替代。