社区
C语言
帖子详情
单向链表能否用快速排序??如果能如何实现???
fentid
2001-09-02 09:41:05
如题!
谢谢!
...全文
248
5
打赏
收藏
微信扫一扫
点击复制链接
分享
下载分享明细
分享
举报
写回复
5 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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);
打赏
举报
回复
赞
相关推荐
单向
链表
实现
倒置,冒泡
排序
,插入
排序
,
快速
排序
单向
链表
实现
倒置,冒泡
排序
,插入
排序
,
快速
排序
,在linux下的gcc
实现
python
单向
链表
实现
快速
排序
_python
单向
链表
实现
快速
排序
快速
排序
的基本思想:从序列当中选择一个基准数在这里我们选择序列当中第一个数作为基准数将序列当中的所有数依次遍历,比基准数大的位于其右侧,比基准数小的位于其左侧重复步骤1.2,直到所有子集当中只有一个元素...
单向
链表
的
快速
排序
实现
上面一篇文章讲解了数组
快速
排序
的
实现
,由于
单向
链表
与数组天生差异,无法
实现
从后往前的指针遍历,所以考虑换一种方式来
实现
。
实现
原理 既然不
能
从后往前进行指针遍历,那么就从前往后吧。同样的设定基准值...
快速
排序
、
单向
链表
的
快速
排序
(C++)
一、
快速
排序
取数组的第一个值作为基准值key,将数组中小于key的值排在key的左边,将数组中大于key的值排在key的右边,然后递归处理以key为分割的两个序列 (1)挖洞法。 a、挖洞法就是将数组Array第一个值作为...
编程语言-基于MATLAB的故障选相及故障电流可控开断研究.pdf
编程语言-基于MATLAB的故障选相及故障电流可控开断研究.pdf
发帖
C语言
加入
微信扫一扫
点击复制链接
分享社区
下载分享明细
6.6w+
社区成员
24.2w+
社区内容
C语言相关问题讨论
社区管理员
申请成为版主
帖子事件
创建了帖子
2001-09-02 09:41
社区公告
暂无公告