| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3523 人关注过本帖, 1 人收藏
标题:链表的快排
只看楼主 加入收藏
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:20 
随便看了看
先扯点儿其他的
1、对空指针的检查代码无论如何都不能省啊
2、如果是空链表的话
len_line函数返回表头
我认为从函数逻辑上来讲应该返回null比较好
3、变量命名太糟糕了,影响程序的可读性
4、del_line函数最后为啥要加个free(t)呢?这不是对野指针进行free操作了嘛

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2010-03-15 11:36
mywaylgh
Rank: 8Rank: 8
来 自:厨房
等 级:蝙蝠侠
威 望:5
帖 子:188
专家分:729
注 册:2010-3-10
收藏
得分:10 
估计出题目的人的真正意思是想利用链表的顺序结构..

直接在输入数字的时候插入就可以了,如此就避免了排序的过程.....

比如 已存在链表(你的是双向链表)  34 <-> 99 <-> 101 ->NULL

此时 输入数字 37  这时应插入到 34  和 99之间

这时链表变为  34 <-> 37<->99 <-> 101->NULL 而不是程序中的 34 <->99 <-> 101<->37 ->NULL


就不要  void line_sort(st *head,st *p,st *r)这个函数了

楼主比我厉害,以上算法应该随便改下就实现了

人生就像茶几 上面放着许多杯具

人生也像厨房 里面总有一些洗具
2010-03-15 11:36
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:0 
拿分来

想象力征服世界
2010-03-15 12:45
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
唉。。
.
mark
2010-03-15 13:05
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
update下,我看看还有更好的代码出来。

实在不行,看来只有我亲自写了。
2010-03-15 19:37
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 15楼 Devil_W
劳烦您亲自写一下吧,也好让偶菜们好好学习学习.
2010-03-15 20:06
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:50 
回复 16楼 广陵绝唱
要在O(n)内找到第K大的数,只需要用快排的分组的那部分算法,而不需要真的对那组数进行排序。对于随机给出的一组数,在这组数里随机选择一个数a,然后用快排分组的方法,把那组数分成三段(x<a),a和(x>a),然后只要能快速定位到a排第几(数组的话直接用下标,链表的话在结构中添加一个index项),那么这三段里的(x<a)、a和(x>a)有两段可以直接排除掉以后可以不再处理。例如如果a是第r个数,那会出现三种情况:

(1)K>r
    那么(x<a)和a这两部分就可以直接抛弃不处理了,对(x>a)这个新集合执行跟之前一样的操作,不过因为之前抛弃了原集合的前r个数那么这时就变成寻找新集合第K-r数

(2)K=r
   直接返回a,a为要找的数

 (3)K<r
      那么a和(x>a)这两部分就可以直接抛弃不处理了,对(x<a)这个新集合执行跟之前一样的操作,继续寻找新集合第K数

重复上面的操作直到出现情况(2),查找结束。

在概率上这个算法可以达到线性的C1n+C2,趋近于O(n),不过也有可能到达最坏的n^2
(如果元数据只是一个整型并且个数固定的话那么这时用数组会比较高效,否则用链表可以减少移动)



身体是玩命的本钱
2010-03-16 21:58
邶风
Rank: 5Rank: 5
等 级:职业侠客
帖 子:287
专家分:335
注 册:2009-1-20
收藏
得分:0 
update 等大牛的作品

#include
2010-03-18 18:01
zoupeijune
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-05 18:47
youfeng243
Rank: 1
等 级:新手上路
帖 子:10
专家分:4
注 册:2010-4-25
收藏
得分:0 
飘过 看不懂耶~!
2010-05-05 21:02
快速回复:链表的快排
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016192 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved