为了账号安全,请及时绑定邮箱和手机立即绑定

字典统计分析,最佳时间复杂度能到达多少

字典统计分析,最佳时间复杂度能到达多少

慕妹3146593 2019-03-29 22:08:25
有一堆字典,每一行为单个字典。实现字典去重并统计次数。如输入:aaabbbcccdddaaabbbcccdddaaaabbbbccccdddd分析结果aaa:2bbb:2ccc:2ddd:2aaaa:1bbbb:1cccc:1dddd:1这个题目,能做到的最佳时间复杂度是多少。先不考虑空间复杂度了。(因为按照下面的算法使用nodejs分析100W个单条数据(200W重复)时,15000ms-16000ms,100+M的内存)另外考虑下一个js的问题。(其实这个才是问题的重点-_-|,解决那个问题,不懂C/C++,所以nodejs解决)解决上面的题目的时候使用了这样一个方法。varstr='上面那串字典';varlineObj={};vararr=str.split('\n');for(vari=arr.length;i--;){lineObj[arr[i]]=lineObj[arr[i]]?lineObj[arr[i]]+1:1;}这样子算是能够达到算法复杂度O(N)吗?总觉得lineObj[arr[i]]在查询属性的时候总的耗费时间比for循环arr的时候会更多。
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

js中对象都是用哈希表来存的,一般来说哈希表的搜索复杂度是O(1)的。
所以可以说你的算法复杂度是O(n)的,而且要完成你的任务至少遍历一遍,所以O(n)已经是最少的了。
                            
查看完整回答
反对 回复 2019-03-29
  • 2 回答
  • 0 关注
  • 436 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号