Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
180
Tıklama
0
Öne Çıkarma
Şu Algoritmanın Analizini Yapabilir Misiniz?
H
4 yıl
Binbaşı

DSU algoritmasi bu. Boyle kullanirsan union O(N) olacak. Buyuk ihtimalle N^2 derken N tane seti birlestirmekten bahsediyor. N tane seti unionlamak (N-1)*O(N) = O(N^2) oluyor.



S
4 yıl
Binbaşı
Konu Sahibi

public class QuickFind {
private int[] id;

public QuickFind(int N) {
id = new int[N];
for(int i = 0; i < N; i++)
id[i] = i;
}

public boolean connected(int p, int q) {
return id[p] == id[q];
}

public void union(int p, int q) {
int pid = id[p];
int qid = id[q];

for(int i = 0; i<id.length; i++) {
if(id[i] == pid)
id[i] = qid;
}
}
}


Çalıştığım kaynak bu algoritmayı çok yavaş diyerek maliyetini N^2 diye çıkardı. Ancak o kısmı çözemedim. Yardımcı olur musunuz?

[1]: En başta N tane işlem yaptık array'e id atarken.
[2]: Union işlemi yaparken de N kez kontrol sağlıyoruz.
[3] Totalde N+N kez işlem yapılmış olmaz mı? 2N olarak buluyorum ben.

Hatam nerede acaba? Teşekkürler.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.