Flo*_*yer 4 f# time-complexity
据我所知,F#中的Map-datatype是不可变的(与数组相反).这就引出了一个问题,即Map.add函数在内部的确切作用.它是否复制整个结构以使原始结构保持不变(这将是非常低效的),还是使用更聪明的策略来确保时间复杂度仍然大致为log?不幸的是,在Microsoft文档中,虽然在某些情况下很重要,但根本没有提到复杂性之类的东西.
F#Map使用引擎盖下的排序平衡树.在更新期间,仅更新更新路径中涉及的节点.其余的重复使用.
仅供参考Map源代码:https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/FSharp.Core/map.fs
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |