我成功地对一个结构体数组进行了排序,每个结构体只包含一个字符字符串。然而,对于一个大约有900,000个元素的结构体数组,qsort所需时间比我预期的要长得多(qsort花费大约2分钟来对这个数组进行排序);这让我觉得我可能忽略了某些东西。
排序是我正在处理的任务中微不足道的一部分,但它独自就完全超过了我程序的时间限制。
以下是我代码中相关的部分:
感谢您的反馈。
排序是我正在处理的任务中微不足道的一部分,但它独自就完全超过了我程序的时间限制。
以下是我代码中相关的部分:
struct WordsArray //Just a struct thath holds a *char
{
char word[25];
};
qsort函数中传递的比较函数:
int cmpfunc(const void *a, const void *b)
{
const struct WordsArray *a1;
a1 = (WordsArray*)malloc(sizeof(WordsArray));
const struct WordsArray *b1;
b1 = (WordsArray*)malloc(sizeof(WordsArray));
a1 = (struct WordsArray*)a;
b1 = (struct WordsArray*)b;
return strcmp(a1->word, b1->word);
}
我的qsort调用:
WordsArray *AllWordsArray;
AllWordsList = (WordsArray*)malloc(sizeof(WordsArray)*ListSize);
qsort(AllWordsList->word, ListSize, sizeof(struct WordsArray), cmpfunc);
感谢您的反馈。