# adjacency list vs matrix complexity

0
1

In this journal, we will be using adjacency matrix [2] with two dimensional array. By using our site, you Adjacency Matrix is a 2D array of size V x V where V is the number of vertices in a graph. Adjacency lists, in simple words, are the array of linked lists. Adjacency List Representation Of A Directed Graph Integers but on the adjacency representation of a directed graph is found with the vertex is best answer, blogging and others call for undirected graphs with the different The time complexity for this case will be O(V) + O (2E) ~ O(V + E). In this post, we discuss how to store them inside the computer. An adjacency list, also called an edge list, is one of the most basic and frequently used representations of a network. It requires less amount of memory and, in particular situations even can outperform adjacency matrix. The first way to represent a graph in a computer’s memory is to build an adjacency matrix. Adjacency list representation. Space complexity is $\mathcal{O}(|V|^2)$ and supports the neighbour-query in $\mathcal{O}(1)$ time. Degree of a node in an undirected graph is given by the length of the corresponding linked list. In a complete graph with vertices, for every vertex the element of would contain element, as every vertex is connected with every other vertex in such a graph. It’s important to remember that the graph is a set of vertices that are connected by edges . b) Which is statement is true and which one is false (give one sentence justification): a. DFS is used for topological sorting. It totally depends on the type of operations to be performed and ease of use. This reduces the overall time complexity of the process. Therefore, would using the matrix to represent the graph change the runtime of Dijkstra's to O(n^2lg(n))? … Algorithm Begin Take the input of the number of vertex ‘v’ and edges ‘e’ and also take the input of ‘e’ pairs of vertexes of the given graph in e[][]. DFS time complexity— adjacency matrix: Θ (|V| 2) adjacency list: O(|V| 2) Breadth first search: visits children before visiting grandchildren. Adjacency List; Adjacency Matrix: Adjacency Matrix is 2-Dimensional Array which has the size VxV, where V are the number of vertices in the graph. In the intersection of nodes, we add 1 (or other weight) if they are connected and 0 … But, the complete graphs rarely happens in real-life problems. When a vertex has a link to itself (e.g. Let the undirected graph be: The following graph is represented in the above representations as: The following table describes the difference between the adjacency matrix and the adjacency list: table { Adjacency matrix representation: In adjacency matrix representation of a graph, the matrix mat[][] of size n*n (where n is the number of vertices) will represent the edges of the graph where mat[i][j] = 1 represents that … If the graph is undirected then when there is an edge between (u,v), there is also an edge between (v,u). Explanation: Space complexity for adjacency matrix is always O(V*V) while space complexity for adjacency list in this case would be O(V). This is because using an adjacency matrix will take up a lot of space where most of the elements will be 0, anyway. acknowledge that you have read and understood our, GATE CS Original Papers and Official Keys, ISRO CS Original Papers and Official Keys, ISRO CS Syllabus for Scientist/Engineer Exam, Doubly Linked List | Set 1 (Introduction and Insertion), Implementing a Linked List in Java using Class, Recursive Practice Problems with Solutions, Data Structures and Algorithms Online Courses : Free and Paid, Insert a node at a specific position in a linked list, Difference between Stack and Queue Data Structures, Difference between Linear and Non-linear Data Structures. The time complexity is O(E+V) and is best suited whenever have a sparse graph. Adjacency Matrix: Checking whether two nodes and are connected or not is pretty efficient when using adjacency matrices. Adjacency list; Adjacency Matrix; Let’s explain it with the following directed graph (digraph) as an example: We digraph with 4 nodes. It is recommended that we should use Adjacency Matrix for representing Dense Graphs and Adjacency List for representing Sparse Graphs. These ones are called sparse. Therefore, the time complexity equals . End In this representation, for every vertex we store its neighbours. Here is an example of an adjacency matrix, corresponding to the above graph: We may notice the symmetry of the matrix. Let’s assume that an algorithm often requires checking the presence of an arbitrary edge in a graph. O(|V| + |E|) Now on to time complexity. It creates a separate linked list for each vertex Vi in the graph G = (V, E). The adjacency matrix takes Θ(n 2 ) space, whereas the adjacency list takes Θ(m + n) space. We represent the graph by using the adjacency list instead of using the matrix. Each edge has its starting and ending vertices. On the other hand, the ones with many edges are called dense. Justify your answer. If is the number of edges in a graph, then the time complexity of building such a list is . If you notice, we are storing those infinity values unnecessarily, as they have no use for us. In order to add a new vertex to VxV matrix the storage must be increases to (|V|+1), There are two pointers in adjacency list first points to the front node and the other one points to the rear node.Thus insertion of a vertex can be done directly in, To add an edge say from i to j, matrix[i][j] = 1 which requires, Similar to insertion of vertex here also two pointers are used pointing to the rear and front of the list. It costs us space. We follow a greedy approach, wherein we prioritize the edge with the minimum weight. width: 100% ; Gary Sinise, … We stay close to the basic definition of a graph - a collection of vertices and edges {V, E}. Assume our graph consists of vertices numbered from to . If the graph consists of vertices, then the list contains elements. A sparse matrix essentially stores only the nonzero values of the adjacency matrix, hence has the same space complexity as an adjacency list representation, i.e. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation. In the case of the adjacency matrix, we store 1 when there is an edge between two vertices else we store infinity. The adjacency list takes deg(v) time. Instead of a list of lists, it is a 2D matrix that maps the connections to nodes as seen in figure 4. These assumptions help to choose the proper variant of graph representation for particular problems. Stack Exchange network consists of 176 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.. Visit Stack Exchange Adjacency List There are other representations also like, Incidence Matrix and Incidence List. In adjacency matrix representation, memory used to represent graph is O (v 2). Adjacency Matrix: it’s a two-dimensional array with Boolean flags. The amount of such pairs of given vertices is . If the graph is undirected (i.e. Adjacency Lists. As discussed in the previous post, in Prim’s algorithm, two sets are maintained, one set contains list of vertices already included in MST, other set contains vertices not yet included. Auxiliary Space complexity O(N+E) Time complexity O(E) to implement a graph. The graph in this picture has the vertex set V = {1, 2, 3, 4, 5, 6}.The edge set E = {{1, 2}, {1, 5}, {2, 3}, {2, 5}, {3, 4}, {4, 5}, {4, 6}}. This O(V)-space cost leads to fast (O(1)-time) searching of edges. (space/time complexity in terms of $|V|$ and … A graph G consists of two types of elements:vertices and edges.Each edge has two endpoints, which belong to the vertex set.We say that the edge connects(or joins) these two vertices. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space … by counting all non-zero entries in the corresponding row of the adjacency matrix. However, there is a major disadvantage of representing the graph with the adjacency list. Earlier we have solved the same problem using Adjacency Matrix (Check if Graph is Bipartite – Adjacency Matrix) with Time complexity: O(V 2) where V – No of vertices in the graph.In this article, we will solve it using the Adjacency List which will reduce … Space complexity for an adjacency list of an undirected graph having large values of V (vertices) and E (edges) is _____ a) O(E) b) O(V*V) c) O(E+V) d) O(V) View Answer . The matrix will be full of ones except the main diagonal, where all the values will be equal to zero. The choice depends on the particular graph problem. Dfs time complexity adjacency matrix θ v 2 adjacency. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph. It finds a shortest path tree for a weighted undirected graph. The "Matrix vs List Comparison" Lesson is part of the full, Tree and Graph Data Structures course featured in this preview video. Thus, an edge can be inserted in, In order to remove a vertex from V*V matrix the storage must be decreased to |V|, In order to remove a vertex, we need to search for the vertex which will require O(|V|) time in worst case, after this we need to traverse the edges and in worst case it will require O(|E|) time.Hence, total time complexity is, To remove an edge say from i to j, matrix[i][j] = 0 which requires, To remove an edge traversing through the edges is required and in worst case we need to traverse through all the edges.Thus, the time complexity is, In order to find for an existing edge  the content of matrix needs to be checked. The vertex set of G is denoted V(G),or just Vif there is no ambiguity. Justify your answer. Finding indegree of a directed graph represented using adjacency list will require O (e) comparisons. Attention reader! It’s easy to implement because removing and adding an edge takes only O(1) time. With adjacency list representation, all vertices of a graph can be … Adjacency Matrix 2. E = number of edges in the graph. First let's look at the time complexity. In some problems space matters, however, in others not. If adj[i][j] = w, then there is an edge from vertex i to vertex j with weight w. The complexity difference in BFS when implemented by Adjacency Lists and Matrix occurs due to this fact that in Adjacency Matrix, to tell which nodes are adjacent to a given vertex, we take O(|V|) time, irrespective of edges. One way of doing a BFS search is to simply use a sparse adjacency … This representation keeps track of the outgoing edges from each vertex, typically as a linked list. Also, time matters to us. a) What is space complexity of adjacency matrix and adjacency list data structures of Graph? Let the 2D array be adj[][], a slot adj[i][j] = 1 indicates that there is an edge from vertex i to vertex j. Adjacency matrix for undirected graph is always symmetric. In this article, we’ll use Big-O notation to describe the time and space complexity of methods that represent a graph. But, in the worst case of a complete graph, which contains edges, the time and space complexities reduce to . If graph has more edge. } The adjacency matrix is one way of representing a graph using a two-dimensional array (NxN matrix). First of all you've understand that we use mostly adjacency list for simple algorithms, but remember adjacency matrix is also equally (or more) important. Also, we can see, there are 6 edges in the matrix. In this article we will implement Djkstra's – Shortest Path Algorithm (SPT) using Adjacency List and Priority queue. The space complexity is also . So transpose of the adjacency matrix is the same as the original. We need space in the only case — if our graph is complete and has all edges. The (V + E) space com- plexity for the general case is usually more desirable, however. A back edge in DFS means cycle in the graph. Given a graph, to build the adjacency matrix, we need to create a square matrix and fill its values with 0 and 1. b) Which is statement is true and which one is false (give one sentence justification): a. DFS is used for topological sorting. Auxiliary Space complexity O(N^2) Time complexity O(E) to implement a graph. V = number of vertices in the graph. Fig 3: Adjacency Matrix . Adjacency List. Bill Paxton, Gary Sinise. A matching corresponds to a choice of 1s in the adjacency matrix, with at most one 1 … An adjacency list, also called an edge list, is one of the most basic and frequently used representations of a network. adjMaxtrix[i][j] = 1 when there is edge between Vertex i and Vertex j, else 0. Adjacency List: To find whether two nodes and are connected or not, we have to iterate over the linked list stored inside . Adjacency matrix: O ( n 2) Adjacency list: O ( n + m) where n is the number nodes, m is the number of edges. The time complexity for the matrix representation is O(V^2). Each edge is shown in the form of connected vertices via linked list. The space complexity is . If the graph is represented as an adjacency matrix (a V x V array): For each node, we will have to traverse an entire row of length V in the matrix to discover all its outgoing edges. DFS time complexity— adjacency matrix: Θ (|V| 2) adjacency list: O(|V| 2) Breadth first search: visits children before visiting grandchildren 13.3 Graph Algorithms: Traversals 657 spreads out in waves from the start vertex; the first wave is one edge away from the start vertex; the second wave is two edges away from the start vertex, and so on, as shown in the top left of Figure 13.7. advertisement. One is space requirement, and the other is access time. The choice of graph representation is situation-specific. Here, using an adjacency list would be inefficient. The time complexity for this case will be O(V) + O (2E) ~ O(V + E). We may also use the adjacency matrix in this algorithm, but there is no need to do it. The complexity of graph algorithms is measured in terms of E and V where E is the number of edges and V is the number of vertices. However, there is a major disadvantage of representing the graph with the adjacency list. Adjacency lists have a space complexity of n whereas adjacency matrices have a space complexity of n^2. What’s a good rule of thumb for picking the implementation? In other words, we need to check all cells , where . Adjacency List Structure. How can one become good at Data structures and Algorithms easily? table-layout: fixed ; Therefore, the time complexity is . Adjacency List vs Adjacency Matrix. I am using here Adjacency list for the implementation. Thinking about the graph in terms of an adjacency matrix is useful for the Hungarian algorithm. n by n matrix, where n is number of vertices; A[m,n] = 1 iff (m,n) is an edge, or 0 otherwise; For weighted graph: A[m,n] = w (weight of edge), or positive infinity otherwise; Advantages of Adjacency Matrix: Adjacency matrix … For a graph with v vertices and e edges, and a fringe stored in a binary min heap, the worst case runtime is O((n+e)lg(n)).However, this is assuming we use a adjacency linked list to represent the graph. This program represents a graph using incidence list and the time complexity of this algorithm is O(e). In this article we will implement Djkstra's – Shortest Path Algorithm (SPT) using Adjacency List and Priority queue. It means, there are 12 cells in its adjacency matrix with a value of 1. There are 2 big differences between adjacency list and matrix. As you can see, the matrix list all nodes horizontally and vertically. Adjacency List. Time complexity to find if there is an edge between 2 particular vertices is _________ Instead, we are saving space by choosing the adjacency list. C. DFS and BFS both have the time complexity of O([V] + [E]). Time Complexity: T(n) = O(V+E), iterative traversal of adjacency list. Don’t stop learning now. Each pointer points to a linked list … Comparison between Adjacency List and Adjacency Matrix representation of Graph, Convert Adjacency Matrix to Adjacency List representation of Graph, Convert Adjacency List to Adjacency Matrix representation of a Graph, Add and Remove vertex in Adjacency Matrix representation of Graph, Add and Remove Edge in Adjacency Matrix representation of a Graph, Add and Remove vertex in Adjacency List representation of Graph, Add and Remove Edge in Adjacency List representation of a Graph, Prim's Algorithm (Simple Implementation for Adjacency Matrix Representation), Prim’s MST for Adjacency List Representation | Greedy Algo-6, Dijkstra’s Algorithm for Adjacency List Representation | Greedy Algo-8, C program to implement Adjacency Matrix of a given Graph, DFS for a n-ary tree (acyclic graph) represented as adjacency list, Kruskal's Algorithm (Simple Implementation for Adjacency Matrix), Implementation of BFS using adjacency matrix, Software Engineering | Comparison between Regression Testing and Re-Testing, Comparison between Bluejacking and Bluesnarfing, Comparison between Lists and Array in Python, Programming vs Coding - A Short Comparison Between Both, Graph Representation using Java ArrayList, Comparison of Dijkstra’s and Floyd–Warshall algorithms, Comparison - Centralized, Decentralized and Distributed Systems, Data Structures and Algorithms – Self Paced Course, We use cookies to ensure you have the best browsing experience on our website. Each edge in the network is indicated by listing the pair of nodes that are connected. Since sparse graphs are quite common, the adjacency list representation is often preferred. If you’re dealing with a sparce … If graph is undirected, . Once in the adjacency list of either end of the edge. Moreover, we may notice, that the amount of edges doesn’t play any role in the space complexity of the adjacency matrix, which is fixed. In this post, O(ELogV) algorithm for adjacency list representation is discussed. For a given graph, in order to check for an edge we need to check for vertices adjacent to given vertex. This … E denotes the number of connections or edges. adjacency matrix vs list, In an adjacency matrix, each vertex is followed by an array of V elements. a) What is space complexity of adjacency matrix and adjacency list data structures of Graph? Depending upon the application, we use either adjacency list or adjacency matrix but most of the time people prefer using adjacency list over adjacency matrix. In terms of space complexity. In this tutorial, we’ve discussed the two main methods of graph representation. This gives us the same space complexity as the adjacency matrix … Tom Hanks, Kevin Bacon. In an adjacency list, each vertex is followed by a list, which contains only the n adjacent vertices. At each algorithm step, we need to know all the vertices adjacent to the current one. Each element is also a list and contains all the vertices, adjacent to the current vertex . That is why the time complexity of building the matrix is . Some graphs might have many vertices, but few edges. As discussed in the previous post, in Dijkstra’s algorithm, two sets are maintained, one set contains list of vertices already included in SPT (Shortest Path Tree), other set contains vertices not yet included. Since cell stores a linked list that … Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. Unweighted Graph Algorithm Breadth first search (BFS) Using *Queue … • Prim's algorithm is a greedy algorithm. Adjacency Matrix Approach. A graph can also be represented using alinked list. Once in the adjacency list of either end of the edge. E = (V2). The Right Representation: List vs. Matrix There are two classic programmatic representations of a graph: adjacency lists and adjacency matrices. td { The worst case storage of an adjacency list is when the graph is dense, i.e. The advantage of such representation is that we can check in time if there exists edge by simply checking the value at row and column of our matrix. Adjacency List. Importantly, if the graph is undirected then the matrix is symmetric. The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. Adjacency List Representation Of A Directed Graph Integers but on the adjacency representation of a directed graph is found with the vertex is best answer, blogging and … Lists pointed In this article, we will understand the difference between the ways of representation of the graph. Thus, this representation is more efficient if space matters. The other way to represent a graph in memory is by building the adjacent list. Data structures [ edit ] I am reading "Algorithms Design" By Eva Tardos and in chapter 3 it is mentioned that adjacency matrix has the complexity of O(n^2) while adjacency list has O(m+n) where m is the total number of edges and n is the total number of nodes. }. Here's what you'd learn in this lesson: Bianca compares the adjacency matrix and adjacency list graph representations in terms of time complexity. An adjacency matrix is a jVjj Vjmatrix of bits where element (i;j) is 1 if and only if the edge (v i;v j) is in E. Thus an adjacency matrix takes up ( jVj2) storage (note that the constant factor here is small since each entry in the matrix is just a bit). If an adjacency matrix can be stored as a sparse matrix, the space complexity would be the same . The main difference is the amount of memory it uses to represent your graph. Stack Exchange network consists of 176 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share … Therefore, the time complexity checking the presence of an edge in the adjacency list is . So what we can do is just store the edges from a given vertex as an array or list. If the graph is undirected then when there is an edge … width: 25% ; However, in this article, we’ll see that the graph structure is relevant for choosing the way to represent it in memory. Pages 43. For some sparse graph an adjacency list is more space efficient against an … My question is the following: How can we improve these data structures using hashing? This kind of the graph representation is one of the alternatives to adjacency matrix. All we have to do is to look for the value of the cell . Comparison The worst case storage of an adjacency list is when the graph is dense, i.e. Adjacency list of a graph with n nodes can be represented by an array of pointers. Each edge in the network is indicated by listing the pair of nodes that are connected. The time complexity of adjacency list is O(v^2). It means, that the value in the row and column of such matrix is equal to 1. See the example below, the Adjacency matrix for the graph shown above. For instance, in the Depth-First Search algorithm, there is no need to store the adjacency matrix. As an example, we will represent the sides for the above graph using the subsequent adjacency matrix. However, this approach has one big disadvantage. In adjacency matrix representation, memory used to represent graph is O(v 2). Adjacency matrices have a time complexity of O (1)(constant time) to find if two nodes are connected but adjacency lists take up to O (n). In this article, adjacency matrix will be used to represent the graph. So, if the target graph would contain many vertices and few edges, then representing it with the adjacency matrix is inefficient. In short:If time is your constraint,use an Adjacency Matrix. This is the adjacency list of the graph above: We may notice, that this graph representation contains only the information about the edges, which are present in the graph. For example, the adjacency list for the Apollo 13 network is as follows: Tom Hanks, Bill Paxton. The Right Representation: List vs. Matrix There are two classic programmatic representations of a graph: adjacency lists and adjacency matrices. Dijkstra algorithm is a greedy algorithm. For each vertex, a list of adjacent vertices is maintained using a linked list. b. Here is an example of an undirected graph, which we’ll use in further examples: This graph consists of 5 vertices , which are connected by 6 edges , and . It says that in-case of adjacency list we will need only lists of … It finds a shortest path tree for a weighted undirected graph. In the previous post, we introduced the concept of graphs. We can use either adjacency matrix or adjacency list representation to store the vertices and edges. A vertex can have at most O(|V|) neighbours and in worst can we would have to check for every adjacent vertex. The … The time complexity for the matrix representation is O(V^2). Tom Hanks, Gary Sinise. In the worst case, if a graph is connected O(V) is required for a vertex and O(E) is required for storing neighbours corresponding to every vertex .Thus, overall space complexity is O(|V|+|E|). The access time to check whether edge is present is constant in adjacency matrix, but is linear in adjacency list. Complexity Analysis for transpose graph using adjacency list. 3. Assuming the graph has vertices, the time complexity to build such a matrix is . There are two popular data structures we use to represent graph: (i) Adjacency List and (ii) Adjacency Matrix. Space complexity is $\mathcal{O}(|E| + |V|)$ as far as I understand, however the neighbour-query depends on the degree size. But, the fewer edges we have in our graph the less space it takes to build an adjacency list. Moreover, we’ve shown the advantages and disadvantages of both methods. Fig 4. The time complexity for the matrix representation is O(V^2). This what the adjacency lists can provide us easily. Adjacency list. Thus, to optimize any graph algorithm, we should know which graph representation to choose. 2. In this post, O(ELogV) algorithm for adjacency list representation is discussed. This gives us the same space complexity as the adjacency matrix representation. The adjacency list representation of the above graph is, A back edge in DFS means cycle in the graph. A self-loop is an edge w… The complexity of Breadth First Search is O(V+E) where V is the number of vertices and E is the number of edges in the graph. and space complexity is O(V+E). b. a) is called self-loop. We’ve learned about the time and space complexities of both methods. In this tutorial, we’ll learn one of the main aspects of Graph Theory — graph representation. In such cases, using an adjacency list is better. An edge is a pair of vertices , where . • It finds a minimum spanning tree for a weighted undirected graph. Vertex (v) or node is an indivisible point, represented by the lettered components on the example graph below generate link and share the link here. An edge between vertices u and v is written as {u, v}.The edge set of G is denoted E(G),or just Eif there is no ambiguity. If the graph is represented as an adjacency matrix (a V x V array): For each node, we will have to traverse an entire row of length V in the matrix to discover all its outgoing edges. Using a adjacency matrix takes O(n^2) to traverse, while a linked list representation can be traversed in O(n+e).. In a lot of cases, where a matrix is sparse using an adjacency matrix may not be very useful. Adjacency Matrix. Therefore, time complexity is. Have a space complexity as the adjacency matrix takes Θ ( m + n =. Creates a separate linked list matrix is sparse using an adjacency list representation is O ( ). The vertices adjacent to given vertex as an array of linked lists have no use for us on its.. Find whether two nodes and are connected is the number of edges starting and ending vertices matters and implementation! A collection of vertices two possible values in each cell of the adjacency and! Both representation have their pros and cons and implementation of both representation have their pros cons! Every adjacent vertex adjacency list vs matrix complexity space in the special case of a node structure. We ’ ve shown the advantages and disadvantages of both representation is discussed the row and column of such of... Two main methods of graph representation they have no use for us non-linear data for. Representing the graph in a graph data structure to store the vertices and few edges traversal! … there are two popular data structures and Algorithms easily is undirected then time. Hold of all the vertices adjacent to the current vertex representing it with the adjacency matrix vs,! Equal to 1 are 12 cells in its adjacency matrix with a value of most! The drawback is … by counting all non-zero entries in the only case — if our is. Building the adjacent list edge between two vertices else we store its neighbours - 11 out of 43.... Neighbours and in worst can we would have to iterate over the linked.! The n adjacent vertices is maintained using a graph is represented in mainly two ways then adjacency list also! Will be 0, anyway of the cell n nodes can be stored as a linked for. Case is usually more desirable, however, there is edge between every pair of nodes are. Creates a separate linked list that … adjacency list is when the graph with the adjacency matrix is another... Disadvantages of both methods do is to look for the graph below, the adjacency list.... As an example of an adjacency matrix is one way of representing the graph be same..., Kevin Bacon Fig 3: adjacency lists are the array of size cell a. And given problem terms of space where most of the most basic and frequently used of. Vertices is ( 1 ) time complexity is O ( V^2 ) less space it takes to an. … complexity Analysis for transpose graph using a graph algorithm, but there is no to. The process, Incidence matrix and Incidence list and contains all the,... Sides for the matrix, are the array of pointers list was created.... Vif there is edge between vertex i and vertex j, else 0 store them inside the computer gary,. They have no use for us one is space requirement, and the is... Just traversed over all of the adjacency matrix is one way of representing a graph in memory, may! Of lists, it is a ( n ) = O ( [ V ] [! ) adjacency matrix n adjacent vertices is maintained using a two-dimensional array ) -space cost leads to fast O! Representing a graph algorithm main difference is the same as the original matrix … DFS time complexity is (. The same which implies having constant number of vertices and has all.. Matrix … DFS time complexity for the Apollo 13 network is indicated by the...