您的位置:首页 > 其它

单链表实现插入排序

2014-08-22 23:18 176 查看
//单链表实现插入排序,基本思想是先生成一个空链表,然后将待排序链表的结点依次插入
//这个空链表中,所有结点都插入完毕后,这个新生成的链表就是所需的有序链表
typedef struct node
{
int data;
struct node *next;
}linknode,*link;

void Insertsort(link L)
{
link p,q,r,u;
p=L->next;
L->next=null;
while(p!=null)
{
r=L;
q=L->next;
while(q!=null&&q->data<=p->data)
{
r=q;
q=q->next;//找到p插入的位置,比如有序序列为1、3、5,将4插入进去就是找到3,r就是所要找到的3
}
u=p->next;  //将4后面的数字,也就是下一个要插入的数字存起来
p->next=r->next;//将4插入到有序链表
r->next=p;
p=u; //将存起来的下一个要插入的数字给p进行下一次插入查找工作
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: