思想:
直接插入排序算法
代码:
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;
}
}
直接插入排序详解
本文详细介绍了一种简单直观的排序算法——直接插入排序。通过具体的代码实现展示了如何将一个无序的链表逐步变为有序的过程。该算法适用于小规模数据集或部分已排序的数据集。
2775

被折叠的 条评论
为什么被折叠?



