`std::sort` 函数不稳定吗?

har*_*rsh 1 c++ sorting std c++17

只是想确认一下我的想法是对还是错。根据定义:

如果具有相同或相同键的两个对象在排序输出中出现的顺序与它们在要排序的输入数组中出现的顺序相同,则称排序算法是稳定的。

现在在标准库的std::sort中,当两个元素相等时返回 false 是必须的。因此,可以肯定地说所使用的排序算法不稳定吗?

Kon*_*lph 5

\n

现在在STL的排序函数中,当两个元素相等时返回false是必须的。因此,可以肯定地说所使用的排序算法不稳定吗?

\n
\n

不,那\xe2\x80\x99 完全不相关。

\n

事实上,std::sort\xe2\x80\x99 并不能保证稳定;如果您需要稳定的排序,请使用std::stable_sort.

\n

但字符串弱排序要求是不相关的,并且对于 和 来说是相同std::sortstd::stable_sort

\n