ES6规范为键集合(Set,Map,WeakSet和WeakMap)提供什么时间复杂度(大O表示)?
我的期望,我期望的大多数开发人员,是规范和实现将使用被广泛接受的高性能算法,在这种情况下Set.prototype.has,add并delete在平均情况下都是O(1)。这同样适用于Map和Weak–等效物。
对我来说,实现的时间复杂性是否在例如ECMAScript 2015 Language Specification-6th Edition — 23.2 Set Objects中规定,并不是完全显而易见的。
除非我误解了(当然,我确实很有可能),但看起来ECMA规范要求实现(例如Set.prototype.has)要使用线性时间(O(n))算法。令我惊讶的是,规范中没有要求或什至不允许使用更高性能的算法,并且我对解释为什么如此的情况非常感兴趣。
慕容708150
料青山看我应如是
相关分类