算法思想:将链表分为两个链表(逻辑上)一个链表默认有序(只含有一个有效节点) 另为无序链表/ 大循环 为每次循环 从无序链表拿出一个元素 将其插入有序链表中
void InsertSort(LNode *p){
if(p->next==NULL||p->next->next==NULL) //若链表为空或者链表中只有一个元素 返回
return ;
LNode *pre=p; //指向排好序的前驱节点
LNode *unsort=p->next->next;
LNode *s=p->next;
s->next=NULL;
s=unsort;
while(s){
unsort=s->next;
while(pre->next!=NULL&&pre->next->data<=s->data)
pre=pre->next;
s->next=pre->next;
pre->next=s;
pre=p;
s=unsort;
}
}