2016-03-24 17 views

cevap

3

CollectionType için documentation, O (self.count) olduğunu gösterir.

Bu, en kötü durum senaryosunun, Set'daki (veya başka bir koleksiyondaki) her öğenin eşitlik açısından kontrol edilmesi gerektiği anlamına gelir. O (self.count) 'dan daha fazla kompleksi olmamalıdır.

+0

Bu, varsayılan uygulama için geçerlidir, ancak 'Set' kendi kendine sağlar. Ve Set.Index'in nasıl çalıştığına bağlı olarak, setin tüm noktası sabit zamanlı arama olduğundan, 'Set''in bir' O (1) 'uygulama sağlayabilmesi mantıklı olacaktır. – phu

+0

Genelde, karma tabloların karmaşıklığı ile ilgili bu cevaba bir bakın. Bu, gerçekte O (n) 'nin en kötü durum senaryosu olduğunu ve O (1)' in mümkün olduğunu ancak garanti edilmediğini gösterir: http://stackoverflow.com/questions/9214353/ hash-tablo-çalışma zamanı-karmaşıklık-insert-search-and-delete –

+1

Daha fazla araştırmadan sonra, '_VariantSetStorage' kaynağının aslında aynı dosyada olduğunu buldum; GYB makro şeyler nedeniyle Arama ile bulamadım. Buna dayanarak, cevabınız teknik olarak doğru olsa da, daha kapsamlı bir versiyonun şöyle olacağına inanıyorum: 'O (1)' bir yerel 'Set', 'O (n)' ortalama sarılmış bir 'NSSet' için ortalama, ve 'O (n)' her ikisi için de en kötü durum (karma çarpışmalardan dolayı). – phu

İlgili konular