如何找到qsort()的比较操作数?

时间:2019-02-21 17:54:27

标签: c

如何找出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, ..);

1 个答案:

答案 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 ...; */
}