"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > مجموعة منفصلة لتعلم الرسم البياني

مجموعة منفصلة لتعلم الرسم البياني

تم النشر بتاريخ 2024-09-01
تصفح:229

Disjoint Set Graph Learning

المجموعة المنفصلة هي هياكل بيانات مستخدمة في شجرة كروسكال الممتدة.
تسمح لنا هياكل البيانات هذه بإنشاء اتحاد بين عقدتين أو أكثر.
يتيح لنا تحديد ما إذا كانت العقدتان تنتميان إلى نفس مكون الرسم البياني لـ not.
التعقيد الزمني هو O(4alpha) (إذا كنا نستخدم ضغط المسار الذي نستخدمه، وإلا فسيكون لوغاريتميًا) وهو تعقيد زمني ثابت تم إثباته.

لمزيد من المعلومات راجع

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");
    }
}
بيان الافراج تم نشر هذه المقالة على: https://dev.to/prashantrmishra/disjoint-set-graph-learning-1f4n?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3