思想:
直接插入排序算法
代码:
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; }
}