思想:
直接插入排序算法
代码:
void sort(LinkList * &L){
LinkList *p,*pre,*r;
p = L->next->next; // 先保存下L的第二个元素,因为下一步要将L变成只有一个元素的有序表; p指针用来遍历无序区
L->next->next = NULL; // 将L变成只有一个元素的有序表
// 从L的第二个元素开始遍历整个L直至表尾
while(p != NULL){
r = p->next;
pre = L; // 先用pre来保存L,pre始终指向有序区
while(pre->next !=NULL && p->data > pre->next->data) // 遍历pre所指向的有序表L,直至找到比p大的节点
pre = pre->next;
p->next = pre->next;//将p插到pre之后,头插法
pre->next = p;
p = r;
}
}