单链表中进行直接插入排序(有头节点)
来源:互联网 发布:php时间戳精确到毫秒 编辑:程序博客网 时间:2024/06/16 06:49
//插入排序
template<typename T>
void chainWithHeader<T>::insertsort()
{
//将链表分成两段,一段有1个元素,另一段有n-1个元素,这是基础
chainNode<T>*p= headerNode->next->next; //p代表第二个节点,此表从第二个节点开始
headerNode->next->next = NULL; //只要一个元素的表,等待插入
chainNode<T>*r,*q;
while (p!= NULL)
{
r = p->next; //保存p后面还没比较的节点
q = headerNode; //新表的表头,每次从表头开始找
while (q->next != NULL&&q->next->element <= p->element) //找到大于p的那个节点前驱
q = q->next;
p->next = q->next; //p->next指向q->next的值
q->next = p; //q->next指向p处的值,相当于从p指的链表找到一个元素放入headerNode所指链表的合适位置
p = r; //进行下一次比较
}
}
template<typename T>
void chainWithHeader<T>::insertsort()
{
//将链表分成两段,一段有1个元素,另一段有n-1个元素,这是基础
chainNode<T>*p= headerNode->next->next; //p代表第二个节点,此表从第二个节点开始
headerNode->next->next = NULL; //只要一个元素的表,等待插入
chainNode<T>*r,*q;
while (p!= NULL)
{
r = p->next; //保存p后面还没比较的节点
q = headerNode; //新表的表头,每次从表头开始找
while (q->next != NULL&&q->next->element <= p->element) //找到大于p的那个节点前驱
q = q->next;
p->next = q->next; //p->next指向q->next的值
q->next = p; //q->next指向p处的值,相当于从p指的链表找到一个元素放入headerNode所指链表的合适位置
p = r; //进行下一次比较
}
}
阅读全文
0 0
- 单链表中进行直接插入排序(有头节点)
- 单链表中的冒泡排序(有头节点)
- 单链表中的选择排序(有头节点)
- 对数组进行直接插入排序
- 用直接插入法进行数组排序
- 排序(直接插入排序)
- 单链表节点插入并进行排序
- 插入排序一(直接插入排序)
- 算法---插入排序(直接插入排序)
- 单链表中的计数排序(排列排序)(有头节点)
- 2.17-比较有头节点的单链表与无头节点插入元素的区别;
- 插入排序(希尔排序、直接插入、折半插入排序)
- 数据结构-插入排序(直接插入排序+折半插入排序)
- 直接插入排序(稳定)
- (直接)插入排序INSERT_SORT
- (24)直接插入排序
- 直接插入排序(python)
- (2)直接插入排序
- 集成学习的原理
- ConfigReader(五十八)—— ReadVipLevelConfig
- redux middleware 详解
- 浏览器-点击预览视频文件(自动播放、循环播放)
- 模仿cmd启动另一个程序
- 单链表中进行直接插入排序(有头节点)
- 激发偶尔;未决犯;
- SGU
- YTU OJ 2994: 凑算式 (蓝桥杯题目)
- 自己动手写操作系统时遇到的关于VGA显示的疑问
- [NOIP2017模拟]弹球
- ThreadLocal源码分析
- 20171019 JAVA Spring框架——事务管理方式搭建一个小的项目
- io流之fileoutputstream