Related Articles

Related Articles

Maximum number of edges in Bipartite graph
  • Difficulty Level : Medium
  • Last Updated : 13 May, 2019

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:

  1. A Bipartite graph is one which is having 2 sets of vertices.
  2. The set are such that the vertices in the same set will never share an edge between them.

Examples:

Input: N = 10
Output: 25
Both the sets will contain 5 vertices and every vertex of first set
will have an edge to every other vertex of the second set
i.e. total edges = 5 * 5 = 25

Input: N = 9
Output: 20



Approach: 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,

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
  
// Function to return the maximum number
// of edges possible in a Bipartite
// graph with N vertices
int maxEdges(int N)
{
    int edges = 0;
  
    edges = floor((N * N) / 4);
  
    return edges;
}
  
// Driver code
int main()
{
    int N = 5;
    cout << maxEdges(N);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of the approach
  
class GFG {
  
    // Function to return the maximum number
    // of edges possible in a Bipartite
    // graph with N vertices
    public static double maxEdges(double N)
    {
        double edges = 0;
  
        edges = Math.floor((N * N) / 4);
  
        return edges;
    }
  
    // Driver code
    public static void main(String[] args)
    {
        double N = 5;
        System.out.println(maxEdges(N));
    }
}
  
// This code is contributed by Naman_Garg.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation of the approach 
  
# Function to return the maximum number 
# of edges possible in a Bipartite 
# graph with N vertices 
def maxEdges(N) : 
  
    edges = 0
  
    edges = (N * N) // 4
  
    return edges; 
  
# Driver code 
if __name__ == "__main__" :
      
    N = 5
    print(maxEdges(N)); 
  
# This code is contributed by AnkitRai01

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of the approach
using System;
  
class GFG {
  
    // Function to return the maximum number
    // of edges possible in a Bipartite
    // graph with N vertices
    static double maxEdges(double N)
    {
        double edges = 0;
  
        edges = Math.Floor((N * N) / 4);
  
        return edges;
    }
  
    // Driver code
    static public void Main()
    {
        double N = 5;
        Console.WriteLine(maxEdges(N));
    }
}
  
// This code is contributed by jit_t.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation of the approach
  
// Function to return the maximum number
// of edges possible in a Bipartite
// graph with N vertices
  
function maxEdges($N)
{
    $edges = 0;
  
    $edges = floor(($N * $N) / 4);
  
    return $edges;
}
  
// Driver code
    $N = 5;
    echo maxEdges($N);
  
// This code is contributed by ajit.
?>

chevron_right


Output:

6

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :