sort(),qsort(),stable_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的确都不是稳定的。这个自己可以测试,不稳定就是相同的值不能保证排序后谁先谁后。