V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kirara
V2EX  ›  编程

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

  •  
  •   kirara · 2019-12-02 00:35:04 +08:00 via Android · 5672 次点击
    这是一个创建于 1804 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要求用交换节点的方式
    11 条回复    2019-12-02 10:48:50 +08:00
    registerrr
        1
    registerrr  
       2019-12-02 00:40:36 +08:00 via Android   ❤️ 4
    又看到你了,自己作业自己写……
    Hsinyao
        2
    Hsinyao  
       2019-12-02 01:22:52 +08:00 via iPhone
    bottom-up 归并
    glfpes
        4
    glfpes  
       2019-12-02 07:45:50 +08:00 via Android
    冒泡法就可以嘛
    Mithril
        5
    Mithril  
       2019-12-02 07:54:48 +08:00   ❤️ 7
    用不着交换节点,有个更好的办法。
    1. 构造一个新的链表
    2. 给你原来链表每个节点生成一个线程
    3. 每个节点数值有多大就让这个线程 Sleep 多少秒
    4. 当线程恢复过来的时候,就把自己这个节点挂到新的链表后面
    这是个万能的排序算法,请一定要学会。
    cty0111
        6
    cty0111  
       2019-12-02 08:56:20 +08:00 via Android
    @Mithril 请问这个方法的优势和限制?
    jmc891205
        7
    jmc891205  
       2019-12-02 09:19:15 +08:00 via iPhone
    @cty0111
    没有优势
    劣势是 toooooooooooooooo slow
    xiri
        8
    xiri  
       2019-12-02 09:35:39 +08:00 via Android
    @cty0111 没有优势,这个算法其实只是一种调侃,叫做睡眠排序,你可以去搜一下。
    还有个比它更狠的猴子排序法:每次随机将数组打乱,然后检查一遍是否有序,不是的话就重复以上过程😂
    xiri
        9
    xiri  
       2019-12-02 09:37:21 +08:00 via Android
    @xiri 名字来源于“给一只猴子足够的时间,它也可能敲出莎士比亚全集”
    poplar50
        10
    poplar50  
       2019-12-02 10:03:58 +08:00 via Android
    @registerrr 哈哈哈哈哈
    zwzmzd
        11
    zwzmzd  
       2019-12-02 10:48:50 +08:00 via Android
    最简单的不是冒泡排序吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1196 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:20 · PVG 02:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.