免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3390 | 回复: 6
打印 上一主题 下一主题

[C] 遍历链表需要的时间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-14 08:23 |只看该作者 |倒序浏览
设计定时器,需要每1s或1ms遍历全局链表,然后计算每个节点剩余秒数,但是假如链表很长,遍历是不是需要花很久时间。

如果说遍历链表不需要太多时间,为何有关链表遍历的时间复杂度问题面试时频出?

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
2 [报告]
发表于 2014-10-14 08:27 |只看该作者
介个在Linux内核中有实现啊, 就是给定时器排序, 并保持时间为差值, 这样就只要Check第一个节点就好了, 不用遍历。

论坛徽章:
0
3 [报告]
发表于 2014-10-14 08:32 |只看该作者
不太明白啊,为何只check第一个,其他的会自动减1?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2014-10-14 08:46 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2014-10-14 08:50 |只看该作者
哦,是不是这样:
每次减一直对第一个节点操作,然后移除第一个节点的时候,后面节点减少n。的确快了很多,但是每次移除一个节点,依然要遍历后面的所有节点。

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
6 [报告]
发表于 2014-10-14 22:29 |只看该作者
回复 5# bandaotidejia


   

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
7 [报告]
发表于 2014-10-14 22:36 |只看该作者
你马的中国的网络现在吃了我好多回复了。

保存的是差值, 比如 现在对列是 2 4 6 10 sec到期的。
现在队列将是:
2 2 2 4
要插入一个5sec到期的。
则新结点分别和 前两个结点比较, 大于则减去比较值

2 2 [1] 2 4, 因为剩余值1比2小, 所以找到插入位置。
再将后结点减去插入结点的值, 得:
2 2 1 1 4
就是最后结果。如果再插入一全5sec到期的, 可能就最成:
2 2 1 0 1 4
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP