如何找出qsort的比较操作数量?
我有一个应该排序的指针数组。 指针数组指向结构数组。
struct oristru {
char string1[TITLE_FIELDLENGTH];
char string2[AUTHORS_FIELDLENGTH];
short int 1;
};
const struct oristru oristrukts[] = { ...}
const struct oristru *temp_oristru[ARRAYLEN(oristrukts)];
struct oristru *p_sortst[ARRAYLEN(oristrukts)];
qsort(*p_sortst, ..);
答案 0 :(得分:2)
假设您正在使用函数fx()
qsort(..., fx);
只需调整fx()
// global var to count comparisons
unsigned long ncomp = 0;
int fx(const void *a, const void *b) {
ncomp++;
/* return ...; */
}