你什么时候在标量上调用stable_sort()?

Meh*_*dad 0 c++ sorting algorithm primitive stable-sort

它是有史以来好叫stable_sort的,而不是sort标量类型(如int,long等)默认的比较?

如果是这样,你应该什么时候这样做?

如果没有,那么为什么标准库不转发这样的调用sort呢?这会不会更快?

小智 5

只有在您排序的项目具有卫星信息时,稳定的排序才真正有用.


来自CLRS(算法导论,第3版):

"实际上,要排序的数字很少是孤立的值.每个数据通常都是称为记录的数据集合的一部分.每个记录包含一个键,它是要排序的值.记录的其余部分由卫星数据组成通常随钥匙携带.实际上,当排序算法置换密钥时,它也必须置换卫星数据."


当排序稳定时,这意味着通过项目的原始排序在排序的数组中打破了关系.如果您只是排序intlong类型,则不需要稳定的排序.