【数据结构】(单链表)单链表插入排序

本文深入解析链表插入排序算法的实现原理及步骤。通过将链表逻辑上分为有序和无序两部分,每次循环从无序部分取出一个元素并插入到有序部分的适当位置,从而逐步构建出完全有序的链表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法思想:将链表分为两个链表(逻辑上)一个链表默认有序(只含有一个有效节点) 另为无序链表/ 大循环 为每次循环 从无序链表拿出一个元素 将其插入有序链表中

void InsertSort(LNode *p){
	if(p->next==NULL||p->next->next==NULL)  //若链表为空或者链表中只有一个元素 返回
		return ;
		LNode *pre=p;  //指向排好序的前驱节点
		LNode *unsort=p->next->next;
		LNode *s=p->next;
		s->next=NULL;
		s=unsort;
		while(s){

			unsort=s->next;

			while(pre->next!=NULL&&pre->next->data<=s->data)
				pre=pre->next;

			s->next=pre->next;
			pre->next=s;
			pre=p;
			s=unsort;
		}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值