📣 独立日限时特惠: VIP通行证立减$68
123
返回列表 发新帖
楼主: donnice
跳转到指定楼层
上一主题 下一主题
收起左侧

[二分/排序/搜索] leetcode sortList

🔗
Kimurate 2014-8-3 01:11:56 | 只看该作者
全局:
北美农民 发表于 2014-8-2 09:02
bottom up不tricky, 只是要一份implementation看看写的怎么样, 感觉很乱。

我记得在哪里看过真正应 ...

我就是说实现很tricky……思想当然简单……
回复

使用道具 举报

🔗
北美农民 2014-8-3 02:10:12 | 只看该作者
全局:
Kimurate 发表于 2014-8-2 12:11
我就是说实现很tricky……思想当然简单……

我仔细读了一下这个非递归的版本, 直觉上这个版本的代价是基于一些常数时间复杂度代价的(最里层1 - interval的循环), 还有一些不好计算overhead。 为了验证猜测我提交测了一下, 比我的递归版本要慢了100+ 毫秒。

0 minutes ago        Accepted        472 ms        java
1 minute ago        Accepted        580 ms        java

一般来说递归进栈出栈需要的时间代价更大,空间复杂度logn更高那么对内存的开辟消耗也更多, 所以非递归版本速度一般是要高于递归版本,但是这个例子中为了实现理论上O(1)的空间而导致速度上反而不如,感觉失去了初衷。不知道还有更好或者更简洁的非递归实现版本没有, 我猜用一个(head, end)的二元组数据结构表示链表会有更好的效果。
回复

使用道具 举报

🔗
Kimurate 2014-8-3 07:52:24 | 只看该作者
全局:
北美农民 发表于 2014-8-2 10:10
我仔细读了一下这个非递归的版本, 直觉上这个版本的代价是基于一些常数时间复杂度代价的(最里层1 - int ...

merge sort 里应该没法避免 1 - interval 的循环吧。
话说,leetcode那个时间不太准的,同一段代码的执行时间都可以差100ms以上,很难作为评判标准…
回复

使用道具 举报

🔗
pyemma 2014-8-4 11:21:10 | 只看该作者
全局:
北美农民 发表于 2014-8-3 00:16
对了, 求一段 nlogn排序 + 常数空间的实现?  谢谢。

这个我也没写出来还,不过用non-recursion的merge sort应该可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表