单链表实现插入排序
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进行下一次插入查找工作 } }
相关文章推荐
- 数据结构 29 排序 自己实现 插入排序 插入和归并综合排序 给链表排序
- 用单链表实现插入排序
- 排序法系列之二----插入排序(直接插入,希尔排序,二分插入,链表插入排序)的C++代码实现
- 链表实现插入排序
- 在单链表上实现插入排序
- 《Java数据结构与算法》笔记-CH5-链表-7实现链表的插入排序
- 单链表实现排序算法之插入排序
- 用指针实现链表--插入排序
- Linux实现插入排序的双向链表
- JavaScript实现链表插入排序和链表归并排序
- Linux实现插入排序的双向链表
- C语言用链表实现插入排序
- 用链表实现插入排序
- 【LeetCode-面试算法经典-Java实现】【147-Insertion Sort List(链表插入排序)】
- JavaScript实现链表插入排序和链表归并排序
- 链表的C语言实现之动态内存分配
- 用链表实现学生信息管理(请教探讨!)
- 链表的C语言实现(五)
- 链表的C语言实现之动态内存分配(转载)
- 链表的C语言实现(范例)