swift.包含(元素:_)方法如何工作



当您在数组中搜索元素时,您可以使用.contains()方法。我想知道的是它是如何工作的,它是否做二进制搜索 sequential Search 或其他完全完全?

contains(_:)方法是在(并由协议扩展为)Sequence上定义的。Sequence对其内容的稳定性没有任何假设,也不提供随机访问,因此它比线性搜索要做的更多。Collection提供随机访问权限,因此至少可以在一个方面实现二进制搜索,但是为此,您需要保证对内容进行排序。

有一个建议将二进制搜索添加到Swift标准库中是另一个好兆头,表明还没有二进制搜索方法。

但是,您可以将Array(将内容分类)施放到NSArray,并使用此方法进行二进制搜索。

最新更新