有关选择排序的问题
NODE * sortList(NODE *head){
NODE *v,*u,*p;
v=(NODE *)malloc(sizeof(NODE));
v->next=head;
head=v;
v=v->next;
/* 选择法排序 */
while (v->next!=NULL)
{
for(p=v, u=v->next; u->next!=NULL; u=u->next)
if (u->next->score>p->next->score )
p=u; /*找到最大的*/
if (p!=v)
{
u=p->next;
p->next=u->next;
u->next=v->next;
v->next=u;
}
v=v->next;
}
return head->next;
}
请问一下
if (p!=v)
{
u=p->next;
p->next=u->next;
u->next=v->next;
v->next=u;
}
是怎么是思想,怎么走的。
选择排序的基本思想是怎么样?
麻烦谁帮忙解说一下?
谢谢!