Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
1
Cevap
179
Tıklama
0
Öne Çıkarma
Şu Algoritmanın Analizini Yapabilir Misiniz?
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.