folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Listedeki 1300 Değeri Sıralama



Listedeki 1300 Değeri Sıralama

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Pozisyon ve bir componentin tutulduğu classım var. Bu classdan 1300 tane üretip listeye ekliyorum. Grid üzerinde bir şekil çiziyorum ve bu şekilin orta noktasını buluyorum. Orta noktadan başlayarak çizilen şekil içerisindeki noktaları bulmam gerekiyor.
    Flood fill mantığını kullanmaya çalışıyorum ama 4 taraf (ileri, geri, sağ, sol) için 1300 değeri bulunan listeyi sıralamak performansa ciddi şekilde etki ediyor ve işlem bitene kadar kasma meydana geliyor.

    Şuan kullandığım kod mantığı ise aşağıdaki şekilde.

    Çizilen şekilin orta noktasını bul. Bu noktaya denk gelen componenti al ve listeye ekle.
    Liste uzunluğu kadar for döndür {
       Seçilen sınıfın x pozisyonu -1'e eşit olanı bulmak için listeyi bu pozisyonu sırala. Sıradaki ilk sınıf şekilin içindeyse listeye ekle. 
       Seçilen sınıfın x pozisyonu +1'e eşit olanı bulmak için listeyi bu pozisyonu sırala. Sıradaki ilk sınıf şekilin içindeyse listeye ekle.
       Seçilen sınıfın y pozisyonu -1'e eşit olanı bulmak için listeyi bu pozisyonu sırala. Sıradaki ilk sınıf şekilin içindeyse listeye ekle.
       Seçilen sınıfın y pozisyonu +1'e eşit olanı bulmak için listeyi bu pozisyonu sırala. Sıradaki ilk sınıf şekilin içindeyse listeye ekle.
    }

    For döngüsü 10'a kadar çalışsa 10*4 = 40 kere 1300 değeri olan listeyi sıralıyor. Buna bir çözüm bulmam lazım ve aklıma bir şey gelmiyor. Önerilerinizi bekliyorum.

    Not : Listeyi sıralamak için System.Linq altındaki .OrderBy fonksiyonunu kullanıyorum.
    List<Örnek> örnekList = new List<Örnek>();
    örnekList = örnekList.OrderBy(x => yakındanuzağasırala(x.position, hedef pozisyon));

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    whopper
    whopper's avatar
    Kayıt Tarihi: 26/Haziran/2008
    Erkek

    Points in Polynom (PIP) mevsuzundan bahsediyorsun sanirim computer graphics dersinde bunun icin 1-2 algoritma gormustuk. Incele eger oysa nette efficient algoritmalar bulabilirsin

Toplam Hit: 966 Toplam Mesaj: 2
sıralama orderby list