怎么用数组优化两个 for 循环?

2018-12-31 19:44:29 +08:00
 joe0

https://imgur.com/bK8oZNa

今天我同学跟我说用数组可以优化,我一时想不出...

2191 次点击
所在节点    问与答
5 条回复
iamaprin
2018-12-31 19:47:30 +08:00
也可以用 map,id 作 key
choury
2018-12-31 19:47:58 +08:00
把 rolelist 和 userRolelist 都排好序放到两个数组里面,然后再对比,时间复杂度可以到 log(n)+log(m)+n+m 这个级别
zn
2018-12-31 20:04:46 +08:00
仅看你这个应用场景,用户角色这种数量级得数据……再怎么优化,顶多能快一纳秒的时间,基本没什么意义。

不过,有这个优化的想法的话,平时写代码的时候会更加注意代码结构合理性,算是一件好事。
liprais
2018-12-31 20:07:23 +08:00
参考 sort merge join
另外也可以用 hashmap,参考 hash join
miao1007
2018-12-31 20:29:39 +08:00
这种做分支预测比较差啊,最好做成 sorted Set

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/522760

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX