使用了内省排序(Introsort)
现代标准库实现中,std::sort 通常使用 内省排序(Introsort),它是一种混合算法>排序算法,结合了以下三种算法的优点:
快速排序
作为主要算法,平均情况下效率很高 O ( n log n ) O(n \log n) O(nlogn)
堆排序
当快速排序的递归深度过大(可能导致 O(n^2) ) 的最坏情况)时,切换到堆排序,保证最坏复杂度为 O ( n log n ) O(n \log n) O(nlogn)
插入排序
对于小规模子序列(通常少于 16 个元素),使用插入排序,因为它在小数据集上更快。