c++面sort()是稳定的吗,里面具体用的算法是什么算法

sort(),qsort(),stable_sort()之间的区别,求解释的清楚一点,具体里面用的是什么算法,谢谢啦!

C++快速排序之sort()

看看这篇文章吧,讲的挺详细的。

http://www.cppblog.com/mzty/archive/2005/12/15/1770.html

sort不稳定,用的是quick sort;
stable sort当然是稳定的,用的是归并排序。

sort一般是qsort实现,都是快速排序,stable_sort也跟sort类似。当两个数相等时,不会交换两个数据。

不能说快速排序就是不稳定的,实际上只要在排序前记录下索引,将索引作为第二比较条件,任何排序算法都是稳定的。
但是stl的qsort和sort的确都不是稳定的。这个自己可以测试,不稳定就是相同的值不能保证排序后谁先谁后。