【生活质量系列】评测几款用过的咖啡机

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
前Google华人高管创立
面试offer一键直通
Leap.ai助你进入热门独角兽
硅谷知名AI创业公司
图灵视频
招聘多个工程师职位
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
查看: 890|回复: 8
收起左侧

[算法题] sort一个array里的每一个elements不是array本身,复杂度是什么?

[复制链接] |试试Instant~ |关注本帖
我的人缘0
asdfg0042 发表于 2016-10-25 09:15:51 | 显示全部楼层 |阅读模式
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  72% (117)
 
 
27% (44)  踩

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
RT
比如说我现在有一个array of strings,然后我要sort里面每一个string(用python的sorted()
sorting的复杂度应该是O(nlog(n))
可是我只遍历了array一次,那应该是O(n)
我感觉如果假设string的长度是固定不变的s, 总的复杂度应该是O(n * slog(s))
可是每个string又不一样长
这种情况下总的复杂度是多少,应该怎么化简呢

本人渣渣,跪求大神解答。。。十分感谢

上一篇:Python刷题的一些技巧分享
下一篇:求问一道System Design设计Hangman
我的人缘0
stellari 发表于 2016-10-25 12:29:06 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (365)
 
 
1% (4)  踩
这时你可以定义s为是n个string中最长的那个string的长度,那么这个算法的worst case复杂度依然是O(nslogs)。O(...)只是一个上限而已。
回复

使用道具 举报

全球28万学生4.7分推荐
我的人缘0
QDkAc 发表于 2016-10-25 13:08:07 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (83)
 
 
0% (0)  踩
sum (si log si + 1) <= (sum si) log (sum si) + n   (琴生不等式以及f(x) = x log x是凸函数)
所以如果设S为总长度,复杂度就是S log S + n
回复

使用道具 举报

我的人缘0
QDkAc 发表于 2016-10-25 13:14:05 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (83)
 
 
0% (0)  踩

我们一般假设si>=1 也就是每个字符串非空 那么再这种情况下sum si >= n
复杂度可以进一步化简为S log S
回复

使用道具 举报

我的人缘0
 楼主| asdfg0042 发表于 2016-10-25 22:44:01 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  72% (117)
 
 
27% (44)  踩
stellari 发表于 2016-10-25 12:29
这时你可以定义s为是n个string中最长的那个string的长度,那么这个算法的worst case复杂度依然是O(nslogs) ...

好主意~谢谢

21.000+ students read the Road to learn React. The course weaves all the opinionated roadmaps into one roadmap to master React. It gives you all the fundamentals in React. You will build a Hacker News App along the way.

回复

使用道具 举报

我的人缘0
 楼主| asdfg0042 发表于 2016-10-25 22:45:20 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  72% (117)
 
 
27% (44)  踩
QDkAc 发表于 2016-10-25 13:14
我们一般假设si>=1 也就是每个字符串非空 那么再这种情况下sum si >= n
复杂度可以进一步化简为S log S
...

所以总的复杂度还是可以回答O(n * slog(s))?好的懂了,谢谢~!
回复

使用道具 举报

我的人缘0
QDkAc 发表于 2016-10-25 23:26:48 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (83)
 
 
0% (0)  踩
asdfg0042 发表于 2016-10-25 22:45
所以总的复杂度还是可以回答O(n * slog(s))?好的懂了,谢谢~!

并不是 是O(S log S) S是所有字符串的长度和
回复

使用道具 举报

我的人缘0
 楼主| asdfg0042 发表于 2016-10-26 05:06:16 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  72% (117)
 
 
27% (44)  踩
QDkAc 发表于 2016-10-25 23:26
并不是 是O(S log S) S是所有字符串的长度和

噢噢不好意思之前看漏了一句, make sense~感觉两个答案都行得通,depends on怎么定义S

With React+D3v4 you'll learn the basics of building fast data visualization components in about an hour.

回复

使用道具 举报

我的人缘0
lby1989825 发表于 2016-10-26 06:48:12 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  87% (35)
 
 
12% (5)  踩
应该是O(N*nlogn),N 是数组长度,n是String的worst case
回复

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地论坛声明

GMT+8, 2018-9-19 12:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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