joe0
V2EX  ›  问与答

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

  •  
  •   joe0 · Dec 31, 2018 · 3075 views
    This topic created in 2725 days ago, the information mentioned may be changed or developed.

    https://imgur.com/bK8oZNa

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

    Supplement 1  ·  Dec 31, 2018
    刚问了,他是利用一个数组把嵌套 for 循环分离,避免重复的 if 判断.还是两个 for 循环.
    https://imgur.com/q3WN2du
    5 replies    2018-12-31 20:29:39 +08:00
    zollum
        1
    zollum  
       Dec 31, 2018 via Android
    也可以用 map,id 作 key
    choury
        2
    choury  
       Dec 31, 2018
    把 rolelist 和 userRolelist 都排好序放到两个数组里面,然后再对比,时间复杂度可以到 log(n)+log(m)+n+m 这个级别
    zn
        3
    zn  
       Dec 31, 2018 via iPhone
    仅看你这个应用场景,用户角色这种数量级得数据……再怎么优化,顶多能快一纳秒的时间,基本没什么意义。

    不过,有这个优化的想法的话,平时写代码的时候会更加注意代码结构合理性,算是一件好事。
    F281M6Dh8DXpD1g2
        4
    F281M6Dh8DXpD1g2  
       Dec 31, 2018 via iPad
    参考 sort merge join
    另外也可以用 hashmap,参考 hash join
    miao1007
        5
    miao1007  
       Dec 31, 2018 via Android
    这种做分支预测比较差啊,最好做成 sorted Set
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3084 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 13:06 · PVG 21:06 · LAX 06:06 · JFK 09:06
    ♥ Do have faith in what you're doing.