Son zamanlarda, başlatılması gerekmeyen dizilere sahip olmanın mümkün olduğunu okudum, yani her bir üyeyi varsayılan değere ayarlamak için zaman harcamak zorunda kalmadan bunları kullanmak mümkün. yani diziyi, başlatmaya gerek kalmadan varsayılan değer tarafından başlatılmış gibi kullanmaya başlayabilirsiniz. (Üzgünüm, bunu nerede okuduğumu hatırlamıyorum).
Örneğin, bunun neden şaşırtıcı olabileceğine dair:
Diyelim ki aralığındaki tamsayıların en kötü durumunu hashtable (ekleme / silme / arama) için modellemeye çalışıyorsunuz .
bit boyutunda bir dizi ayırabilir ve hashtable içinde bir tamsayının varlığını göstermek için ayrı bitler kullanabilirsiniz. Not: bellek ayırma süresi olarak kabul edilir.
Şimdi, bu diziyi hiç başlatmanız gerekmediyse , bu hashtable üzerindeki işlemlerinin herhangi bir dizisi artık en kötü durumda .
Sonuç olarak, işlem dizisi için alanı kullanan ancak zamanında çalışan "mükemmel" bir karma uygulamanız vardır !Θ ( n 2 ) O ( n )
Normalde çalışma zamanınızın en az alan kullanımınız kadar kötü olması beklenir!
Not: Yukarıdaki örnek, seyrek bir kümenin veya seyrek matrisin uygulanması için kullanılabilir, bu yüzden sadece teorik ilgi alanı olmadığını düşünüyorum.
Soru şu:
Başlatma adımını atlamamızı sağlayan veri yapısı gibi bir diziye sahip olmak nasıl mümkün olabilir?