社区
C语言
帖子详情
单向链表能否用快速排序??如果能如何实现???
fentid
2001-09-02 09:41:05
如题!
谢谢!
...全文
417
5
打赏
收藏
单向链表能否用快速排序??如果能如何实现???
如题! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ylredsun
2001-09-05
打赏
举报
回复
gz
fsb_12345
2001-09-03
打赏
举报
回复
只要自己编程,都能实现,没有现成的函数
zhanghaifeng
2001-09-03
打赏
举报
回复
OK
onetwothree
2001-09-03
打赏
举报
回复
补充一点,这里LIST就是指向NODE的指针类型。
onetwothree
2001-09-03
打赏
举报
回复
当然可以。我在杂志上看到过,是SIGPLAN Notices 1997.9,北京大学Qiu Zongyan写的文章(估计就是翻译《程序设计实践》的人,名字读音一样)。里面有下面的C程序,很有意思:
LIST qsortL (LIST h, LIST lnext)
{
NODE n1, n2;
LIST p, t1 = &n1, t2 = &n2;
if (h == NULL) return lnext;
for (p = h->next; p != NULL;
p = p->next)
if (p->key < h->key)
{
t1->next = p;
t1 = p;
}
else
{
t2->next = p;
t2 = p;
}
t1->next = t2->next = NULL;
h->next = qsortL(n2.next, lnext);
return qsortL(n1.next, h);
}
对list1排序,排序结果赋值给list2:
list2 = qsortL(list1, NULL);
单向链表
的
快速排序
实现
本文介绍了一种针对
单向链表
的
快速排序
算法
实现
方法。由于链表无法从后向前遍历,该方法采用从前向后的指针遍历,并通过两个指针S和L来调整链表元素的位置,确保S之前的数据小于等于基准值,S与L之间的数据大于基准值。最后通过递归调用
实现
了完整的链表排序。
快速排序
、
单向链表
的
快速排序
(C++)
本文介绍了
快速排序
算法的基本思想,包括挖洞法和左右交换两种
实现
方式,并详细阐述了
单向链表
上如何应用
快速排序
,最后讨论了
快速排序
的平均和最坏情况下的时间复杂度。
单向链表
快速排序
本文深入探讨了
快速排序
算法在数组和
单向链表
中的应用,包括两种版本的
快速排序
算法(霍尔版本和算法导论版本),详细解释了算法的核心原理、代码
实现
,并展示了如何将数组排序的思路应用到链表排序中,通过实例演示了链表排序的过程。
单向链表
排序:
快速排序
和归并排序
本文介绍
单向链表
上的归并排序和两种
快速排序
方法,包括仅改变链接和仅改变节点值的方式,并提供了完整的源码及测试函数。
单向链表
的
实现
和排序算法
本文详细介绍了
单向链表
的两种
实现
方式,并提出了基于快排和归并排序的链表排序算法。通过引入尾节点优化了链表的插入操作,并通过快慢指针解决了归并排序中链表切分的问题。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章