
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Maximum Number of Edges in Bipartite Graph in C++
Problem statement
Given an integer N which represents the number of Vertices. The Task is to find the maximum number of edges possible in a Bipartite graph of N vertices.
Bipartite Graph
- A Bipartite graph is one which is having 2 sets of vertices.
- The set are such that the vertices in the same set will never share an edge between them.
Example
If N = 10 then there will be total 25 edges −
- Both sets will contain 5 vertices and every vertex of first set will have an edge to every other vertex of the second set
- Hence total edges will be 5 * 5 = 25
Algorithm
- The number of edges will be maximum when every vertex of a given set has an edge to every other vertex of the other set i.e. edges = m * n where m and n are the number of edges in both the sets
- in order to maximize the number of edges, m must be equal to or as close to n as possible
- Hence, the maximum number of edges can be calculated with the formula −
(n * n) / 4
Example
#include <bits/stdc++.h> using namespace std; int getMaxEdges(int n) { return floor((n * n) / 4); } int main() { int n = 7; cout << "Maximum edges = " << getMaxEdges(n) << endl; return 0; }
Output
When you compile and execute above program. It generates following output −
Maximum edges = 12
Advertisements