From 4d12b9886e884c69b7d30b30fcedeaf818246302 Mon Sep 17 00:00:00 2001 From: Shrey Gupta <75122294+Shreygupta2002@users.noreply.github.com> Date: Sat, 7 Oct 2023 13:35:34 +0530 Subject: [PATCH] Added Kruskal Algorithm Please add Hacktober Fest Tag --- c++/kruskal.cpp | 107 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 c++/kruskal.cpp diff --git a/c++/kruskal.cpp b/c++/kruskal.cpp new file mode 100644 index 0000000..0e6a0c0 --- /dev/null +++ b/c++/kruskal.cpp @@ -0,0 +1,107 @@ +#include +using namespace std; +typedef long long int ll; +const int N=1e5; +class DSU +{ +public: + int parent[N+1]; + int Rank[N+1]; + DSU(int n) + { + for(int i=1;i<=n;i++) + { + parent[i]=i; + Rank[i]=0; + } + } + int findPar(int node) + { + if(node==parent[node]) + return node; + else return parent[node] = findPar(parent[node]); + } + void Union(int u, int v) + { + u=findPar(u); + v=findPar(v); + if(u!=v) + { + if(Rank[u]Rank[v]) + { + parent[v]=u; + } + else + { + parent[v]=u; + Rank[u]++; + } + } + } +}; +bool cmp(pair,int> p1, pair,int> p2) +{ + return p1.second>vertices>>edges; + pair,int> graph[edges]; + for(int i=0;i>u>>v>>w; + graph[i]={{u,v},w}; + } + sort(graph,graph+edges,cmp); + DSU d(vertices); + int cnt=0; + int cost=0; + vector,int>> ans; + for(int i=0;i(stop-start); + cerr<