Sadece bu hesaplama için en iyi yaklaşımın ne olduğunu merak ediyorum. Bir dizi girdi dizisi ve sınır dizisi olduğunu varsayalım - Sınır dizisindeki her segment için frekans dağılımını hesaplamak/hesaplamak istedim.C# içindeki dizi için frekans dağılımını hesaplamanın en hızlı yolu nedir?
Bunun için kova aramayı kullanmak iyi bir fikir midir?
Aslında bu soruyu Calculating frequency distribution of a collection with .Net/C#bulundu Ama her bir bölüm boyutu benim durumda farklı olabilir neden bu amaçla kovaları nasıl kullanılacağını anlamıyorum.
DÜZENLEME: iç/dış döngü çözüm, ama giriş karma gereken doğru anlamış hala, bu durumda O (n) performans elde etmek için bir sözlük ile iç döngü ortadan kaldırmak için kullanılmaktadır bütün tartışmalar sonra bir kepçe dizinine değerler. Yani O (1) karmaşıklığı ile bir çeşit karma işlevine ihtiyacımız var? Herhangi bir fikir nasıl yapılır?
Eğer biraz daha iyi sınırlar dizi tarif edebilir misiniz? Çeşitli sınırlar arasında herhangi bir ilişki var mı (yani sıralı mıdır) veya tamamen boyut ve “konum” olarak rastgele mi? Sınır dizisinin olası değerler aralığını tamamen kapsadığını varsayalım - bu doğru mu? Ayrıca, üst üste herhangi bir çakışma olmadığını varsayıyorum - değil mi? –
en büyük "O" anlamında mı yoksa küçük kodun anlamı mı? Basit bir yaklaşım, kendinize bir fonksiyon Func yazmak ve bunu "Kovalar" içine gruplandırmak için Linqs .GroupBy ile kullanmak olacaktır - ancak bunu yapmak için hesaplamalı daha hızlı yollar olabilir. –
Carsten
Evet, haklısınız. Sınır değerleri, monoton olarak değer olarak artmaktadır. Çatışma yoktur ve olası değerler aralığını kapsamaktadır. Örneğin: 0, 10, 50, 100, 120. – Andrey