„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Lernen mit disjunkten Mengengraphen

Lernen mit disjunkten Mengengraphen

Veröffentlicht am 01.09.2024
Durchsuche:285

Disjoint Set Graph Learning

Disjunkte Menge ist eine Datenstruktur, die im Kruskal Minimal Spanning Tree verwendet wird.
Diese Datenstrukturen ermöglichen es uns, die Vereinigung von zwei oder mehr Knoten zu erstellen.
Damit können wir feststellen, ob zwei Knoten zur gleichen Komponente des Diagramms gehören oder nicht.
Die Zeitkomplexität ist O(4alpha) (wenn wir die Pfadkomprimierung verwenden, die wir verwenden, sonst ist sie logarithmisch), was eine konstante Zeitkomplexität ist, die nachgewiesen wurde.

Weitere Informationen finden Sie unter

class Main{
    int parent[]  = new int[100000];
    int rank[] = new int[100000];
    void makeSet(){
        for(int i=1;i6->4->3 , here 3 is the parent of this union, so in order to get the parent of 7 which is 3 we can path compress it. like 7->3,6->3,4->3 etc.
    }
    void union(int u, int v){
        u = findParent(u);
        v = findParent(v);
        if(rank[u]  rank[v]) parent[v] = u;
        else parent[u] =v; // or parent[v] = u;
        // here u and v had the same rank
        //and now v became parent of u hence its rank will increase
        rank[v]  ;
    }

    public static void main(String args[]) throws Exception{
        Main m = new Main();
        //if we where given no of nodes as n
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        while(n>0){
            int u = n--;
            int v = n--;
            m.union(u,v);// this will create union of n nodes
        }
        // if 2 and 3 belong to the same component or not find out
        if(findParent(2)! = findParent(3)) System.out.println("Different component");
        else System.out.println("Same component");
    }
}
Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/prashantrmishra/disjoint-set-graph-learning-1f4n?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3