C 语言链表怎么给节点排序

2019-12-02 00:35:04 +08:00
 kirara
要求用交换节点的方式
5692 次点击
所在节点    编程
11 条回复
registerrr
2019-12-02 00:40:36 +08:00
又看到你了,自己作业自己写……
Hsinyao
2019-12-02 01:22:52 +08:00
bottom-up 归并
Yvette
2019-12-02 04:05:11 +08:00
glfpes
2019-12-02 07:45:50 +08:00
冒泡法就可以嘛
Mithril
2019-12-02 07:54:48 +08:00
用不着交换节点,有个更好的办法。
1. 构造一个新的链表
2. 给你原来链表每个节点生成一个线程
3. 每个节点数值有多大就让这个线程 Sleep 多少秒
4. 当线程恢复过来的时候,就把自己这个节点挂到新的链表后面
这是个万能的排序算法,请一定要学会。
cty0111
2019-12-02 08:56:20 +08:00
@Mithril 请问这个方法的优势和限制?
jmc891205
2019-12-02 09:19:15 +08:00
@cty0111
没有优势
劣势是 toooooooooooooooo slow
xiri
2019-12-02 09:35:39 +08:00
@cty0111 没有优势,这个算法其实只是一种调侃,叫做睡眠排序,你可以去搜一下。
还有个比它更狠的猴子排序法:每次随机将数组打乱,然后检查一遍是否有序,不是的话就重复以上过程😂
xiri
2019-12-02 09:37:21 +08:00
@xiri 名字来源于“给一只猴子足够的时间,它也可能敲出莎士比亚全集”
poplar50
2019-12-02 10:03:58 +08:00
@registerrr 哈哈哈哈哈
zwzmzd
2019-12-02 10:48:50 +08:00
最简单的不是冒泡排序吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/624893

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX