在一道求多项式的和的题目答案中受启发写了自己的排序算法,原题中有int类型变量MAX辅助理解,在我的单链表排序算法中去掉了MAX,效果不变
void MySort(LinkList &L)
{
Node*p,*q;
int t;
p=L->next;
q=p->next;
while(p->next!=NULL)//重复找最小结点,把最小结点数据换到p处
{
while(q!=NULL)
{
if(q->data<p->data)//在后面找比当前结点q更小的结点,
//每找到一次就交换,最后找到的是p后面最小的结点
{
t=q->data;
q->data=p->data;
p->data=t;
}
q=q->next;
}
p=p->next;
q=p->next;
}
}
原算法如下
void paixu(Linklist la)
{
Linklist p,q;
int max_exp;
p=la->next;q=p->next;
while(p->next!=NULL)
{
max_exp=p->exp;
while(q!=NULL)
{
if(q->exp>max_exp)
{
double temp2;
int temp1;
max_exp=q->exp;
temp1=p->exp;temp2=p->coef;
p->exp=q->exp;p->coef=q->coef;
q->exp=temp1;q->coef=temp2;
}
q=q->next;
}
p=p->next;
q=p->next;
}
return;
}