//以单链表为储存结构实现简单选择排序的算法。
void Algo(LinkList *L)
{
LinkList r,s,pre,p;
s=(*L)->next; //s 指向链表第一个结点
(*L)->next=NULL;
while(s)
{
SelectMinPtr(s,&pre,&p);
if(p==s)
s=s->next;
if(pre)
pre->next=p->next;
if((*L)->next)
r->next=p,r=r->next;
else
(*L)->next=p,r=(*L)->next;
}
r->next=NULL;
}
void SelectMinPtr(LinkList s,LinkList *pre, LinkList *p)
{
int min;
*pre=NULL;
*P=s;
for(min=s->data;s&&s->next;s=s->next)
{
if(s->next->data<min)
{
min=s->next->data;
*pre=s;
*p=s->next;
}
}
}
以单链表为储存结构实现简单选择排序的算法。
最新推荐文章于 2024-08-19 23:54:49 发布