我正在使用linux并尝试在C中编写程序,以便使用快速排序对链接列表元素进行排序。这是我的代码。
struct node {
int data;
struct node *link;
struct node *plink;
};
struct node *first=NULL, *last=NULL;
void swap(struct node* a, struct node* b) {
int temp;
temp = a->data;
a->data = b->data;
b->data = temp;
}
void qsort(struct node *low, struct node *high) {
if(low==NULL || high==NULL || low == high || low->plink == high)
return ;
struct node *pivot=low, *tmp=low->link;
while(tmp != high->link) {
if(tmp->data < low->data) {
swap(pivot->link, tmp);
pivot = pivot->link;
}
tmp = tmp->link;
}
swap(low, pivot);
qsort(low, pivot->plink);
qsort(pivot->link, high);
}
它适用于小文本文件但不适用于1.7M的文件。请告诉我需要添加的内容。
提前致谢。