Büyük O notasyonu tüm yaklaşımları hakkında. Bu kolay algoritmaları karşılaştırmak için yapar.
Eğer elemanların diziyi hayal, bir arama (istediğiniz öğeyi bulmak için her öğenin bakmak gerekir) sipariş N olabilir, bu bir sipariş koleksiyona sahip olursa ya da sipariş 1 olabilir sipariş Log (N) olabilir toplama türüne bağlı.
Burada önemli şey algoritması bakmak ve anahtar işlemler tekrarlanır ki ne belirlemektir.
Foreach tanımı ile sizin listedeki her öğe üzerinde çalışması gereken, açıkça bir düzen N işlemdir. O (N)
Sonraki aşağıdadır inarray 2. eğer. Bu düzen N (doğrusal arama) olacağını çok büyük olasılıkla sırasız olacak bir dizi üzerinde yapılan aramada, gibi geliyor. Yani karmaşıklığı şimdi O (N * M) olacaktır. (Dizideki 1 her n elemanlar için, dizinin üzerinde 2 için N karmaşık bir arama gerçekleştirmek).
Son olarak bir dizi itme var. Ben ortamı bilmiyorum ama dizi büyümek için tahsis ve kopyalanması gerekiyorsa bu siparişin 1 veya sipariş N olabilir. Basit tutmak için düzen 1. varsayalım. Bu nedenle Big O sizin karmaşıklığı O (N * M) 'dir.
Yani şimdi iyi durumda O olacağını, her eleman bu ilk denemede meslektaşı bulmak ve dizi zorlaması gerçekleştirmek için (N * 1 * 1) = O (N).
En kötü durumda, her elemanı dizideki 2 tüm unsurların tam arama zorlayarak ikinci listede bulunamıyor olmasıdır. Dolayısıyla karmaşıklığı O (N * M) 'dir.
Öğretmenleriniz yüzden onlara yapılan varsayımlar göstermek düşünme anlamak istiyorum. Ben çok size burada verilen varsayımlara dayanarak önce, size tam ceza ve her durumda kullanılan algoritmalar söylerdim dil / platform söylendi olabilir verilmiş kesin soru ve bilgi okumanızı öneririz. Umarım ki olur :)