【发布时间】:2012-04-23 20:15:11
【问题描述】:
是否可以仅通过修改我的 comp op 来使整数的 qsort 稳定?那是我的代码。我在大约 5-7 大小的非常小的数组上使用它。
static int compare( const void *a, const void *b )
{
const int A(*(const int*)(a));
const int B(*(const int*)(b));
return B - A;
}
【问题讨论】:
-
如果您的
ints 的大小“合理”并且不会发生溢出 - 是的。 -
@valdo:你确定你理解了这个问题吗?您认为 C 标准库函数 qsort() 是稳定排序吗?有任何参考吗?
-
当您的数据只是普通整数时,为什么还要关心排序算法是否稳定?仅当您有可区分的元素进行比较时,稳定性才重要。
-
答案是“不”。我会将其发布为答案而不是评论,但我什至无法想象你怎么可能认为这可能有效,所以我不确定我需要解释什么来说服你它没有。
标签: c++ c sorting qsort stable-sort