algoritmos e teoria dos grafos aula 04 - ufpr · algoritmos e teoria dos grafos aula 04 prof....

58
Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Upload: others

Post on 11-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Algoritmos e Teoria dos GrafosAula 04

Prof. Murilo V. G. da Silva

DINF/UFPR

Material da Disciplina:

Renato J. S. Carmo

Page 2: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Notacao Assintotica e Algoritmos Polinomiais

Notacao “big-Oh”

Escrevemos g(n) = O(f (n)) se existem c > 0 e nc ∈ N tais que,

g(n) ≤ cf (n),∀n ≥ nc .

Algoritmos Polinomiais

Um algoritmo e polinomial se seu tempo de execucao e O(nk) para algumk ∈ N, onde n e o tamanho da entrada do algoritmo.

i.e., um algoritmo e polinomial se existem c > 0, k e nc ∈ N tais que

para toda entrada de tamanho n > nc , o tempo de execucao t(n) doalgoritmo satisfaz t(n) ≤ cnk

E comum dizer que a complexidade de tempo do algoritmo e polinomial

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 3: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Notacao Assintotica e Algoritmos Polinomiais

Notacao “big-Oh”

Escrevemos g(n) = O(f (n)) se existem c > 0 e nc ∈ N tais que,

g(n) ≤ cf (n),∀n ≥ nc .

Algoritmos Polinomiais

Um algoritmo e polinomial se seu tempo de execucao e O(nk) para algumk ∈ N, onde n e o tamanho da entrada do algoritmo.

i.e., um algoritmo e polinomial se existem c > 0, k e nc ∈ N tais que

para toda entrada de tamanho n > nc , o tempo de execucao t(n) doalgoritmo satisfaz t(n) ≤ cnk

E comum dizer que a complexidade de tempo do algoritmo e polinomial

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 4: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Notacao Assintotica e Algoritmos Polinomiais

Notacao “big-Oh”

Escrevemos g(n) = O(f (n)) se existem c > 0 e nc ∈ N tais que,

g(n) ≤ cf (n),∀n ≥ nc .

Algoritmos Polinomiais

Um algoritmo e polinomial se seu tempo de execucao e O(nk) para algumk ∈ N, onde n e o tamanho da entrada do algoritmo.

i.e., um algoritmo e polinomial se existem c > 0, k e nc ∈ N tais que

para toda entrada de tamanho n > nc , o tempo de execucao t(n) doalgoritmo satisfaz t(n) ≤ cnk

E comum dizer que a complexidade de tempo do algoritmo e polinomial

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 5: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Notacao Assintotica e Algoritmos Polinomiais

Notacao “big-Oh”

Escrevemos g(n) = O(f (n)) se existem c > 0 e nc ∈ N tais que,

g(n) ≤ cf (n),∀n ≥ nc .

Algoritmos Polinomiais

Um algoritmo e polinomial se seu tempo de execucao e O(nk) para algumk ∈ N, onde n e o tamanho da entrada do algoritmo.

i.e., um algoritmo e polinomial se existem c > 0, k e nc ∈ N tais que

para toda entrada de tamanho n > nc , o tempo de execucao t(n) doalgoritmo satisfaz t(n) ≤ cnk

E comum dizer que a complexidade de tempo do algoritmo e polinomial

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 6: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Problemas Polinomiais e Problemas NP-difıceis

Problemas Polinomiais

Um problema polinomial e um problema computacional para o qual existealgoritmo polinomial que o resolva.

Problemas NP-difıceis

Um problema NP-difıcil e um problema computacional para o qual

1 nao se conhece nenhum algoritmo polinomial

2 a existencia de algoritmo polinomial implica na existencia de algoritmospolinomiais para outros problemas NP-difıceis.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 7: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Problemas Polinomiais e Problemas NP-difıceis

Problemas Polinomiais

Um problema polinomial e um problema computacional para o qual existealgoritmo polinomial que o resolva.

Problemas NP-difıceis

Um problema NP-difıcil e um problema computacional para o qual

1 nao se conhece nenhum algoritmo polinomial

2 a existencia de algoritmo polinomial implica na existencia de algoritmospolinomiais para outros problemas NP-difıceis.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 8: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Problemas Polinomiais e Problemas NP-difıceis

Problemas Polinomiais

Um problema polinomial e um problema computacional para o qual existealgoritmo polinomial que o resolva.

Problemas NP-difıceis

Um problema NP-difıcil e um problema computacional para o qual

1 nao se conhece nenhum algoritmo polinomial

2 a existencia de algoritmo polinomial implica na existencia de algoritmospolinomiais para outros problemas NP-difıceis.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 9: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Exemplos de problemas

Exemplos de Problemas Polinomiais

ordenar uma lista de numeros dada.

decidir se um valor dado ocorre ou nao em uma lista, tambem dada.

encontrar um caminho mınimo entre dois vertices em um grafo

Exemplos de Problemas NP-difıceis

o problema do caixeiro viajante

encontrar uma valoracao que satisfaz uma formula booleana

encontrar uma coloracao mınima para um grafo

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 10: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Exemplos de problemas

Exemplos de Problemas Polinomiais

ordenar uma lista de numeros dada.

decidir se um valor dado ocorre ou nao em uma lista, tambem dada.

encontrar um caminho mınimo entre dois vertices em um grafo

Exemplos de Problemas NP-difıceis

o problema do caixeiro viajante

encontrar uma valoracao que satisfaz uma formula booleana

encontrar uma coloracao mınima para um grafo

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 11: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Complexidade de espaco

Complexidade de Espaco: Quantidade de memoria necessaria para se resolverum problema em funcao do tamanho da entrada.

Ideia 1: O espaco necessario para se resolver um problema e o espaco necessariopara armazenar a instancia do problema mais o espaco extra necessario pararealizar a computacao

Ideia 2 (mais usual): Definir a complexidade de espaco de um problema levandoem consideracao apenas o espaco extra necessario.

Nesta aula: Nao nos preocuparemos com a complexidade de espaco deproblemas, mas apenas com a complexidade de espaco de armazenamento dografo de entrada.

A descricao de um grafo G consome espaco proporcional a |V (G)|+ |E(G)|.

Ou seja, um grafo (V (G),E(G)) consome O(|V (G)|+ |E(G)|) posicoes dememoria para ser armazenado no computador.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 12: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Complexidade de espaco

Complexidade de Espaco: Quantidade de memoria necessaria para se resolverum problema em funcao do tamanho da entrada.

Ideia 1: O espaco necessario para se resolver um problema e o espaco necessariopara armazenar a instancia do problema mais o espaco extra necessario pararealizar a computacao

Ideia 2 (mais usual): Definir a complexidade de espaco de um problema levandoem consideracao apenas o espaco extra necessario.

Nesta aula: Nao nos preocuparemos com a complexidade de espaco deproblemas, mas apenas com a complexidade de espaco de armazenamento dografo de entrada.

A descricao de um grafo G consome espaco proporcional a |V (G)|+ |E(G)|.

Ou seja, um grafo (V (G),E(G)) consome O(|V (G)|+ |E(G)|) posicoes dememoria para ser armazenado no computador.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 13: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Complexidade de espaco

Complexidade de Espaco: Quantidade de memoria necessaria para se resolverum problema em funcao do tamanho da entrada.

Ideia 1: O espaco necessario para se resolver um problema e o espaco necessariopara armazenar a instancia do problema mais o espaco extra necessario pararealizar a computacao

Ideia 2 (mais usual): Definir a complexidade de espaco de um problema levandoem consideracao apenas o espaco extra necessario.

Nesta aula: Nao nos preocuparemos com a complexidade de espaco deproblemas, mas apenas com a complexidade de espaco de armazenamento dografo de entrada.

A descricao de um grafo G consome espaco proporcional a |V (G)|+ |E(G)|.

Ou seja, um grafo (V (G),E(G)) consome O(|V (G)|+ |E(G)|) posicoes dememoria para ser armazenado no computador.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 14: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Complexidade de espaco

Complexidade de Espaco: Quantidade de memoria necessaria para se resolverum problema em funcao do tamanho da entrada.

Ideia 1: O espaco necessario para se resolver um problema e o espaco necessariopara armazenar a instancia do problema mais o espaco extra necessario pararealizar a computacao

Ideia 2 (mais usual): Definir a complexidade de espaco de um problema levandoem consideracao apenas o espaco extra necessario.

Nesta aula: Nao nos preocuparemos com a complexidade de espaco deproblemas, mas apenas com a complexidade de espaco de armazenamento dografo de entrada.

A descricao de um grafo G consome espaco proporcional a |V (G)|+ |E(G)|.

Ou seja, um grafo (V (G),E(G)) consome O(|V (G)|+ |E(G)|) posicoes dememoria para ser armazenado no computador.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 15: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Complexidade de espaco

Complexidade de Espaco: Quantidade de memoria necessaria para se resolverum problema em funcao do tamanho da entrada.

Ideia 1: O espaco necessario para se resolver um problema e o espaco necessariopara armazenar a instancia do problema mais o espaco extra necessario pararealizar a computacao

Ideia 2 (mais usual): Definir a complexidade de espaco de um problema levandoem consideracao apenas o espaco extra necessario.

Nesta aula: Nao nos preocuparemos com a complexidade de espaco deproblemas, mas apenas com a complexidade de espaco de armazenamento dografo de entrada.

A descricao de um grafo G consome espaco proporcional a |V (G)|+ |E(G)|.

Ou seja, um grafo (V (G),E(G)) consome O(|V (G)|+ |E(G)|) posicoes dememoria para ser armazenado no computador.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 16: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Complexidade de espaco

Complexidade de Espaco: Quantidade de memoria necessaria para se resolverum problema em funcao do tamanho da entrada.

Ideia 1: O espaco necessario para se resolver um problema e o espaco necessariopara armazenar a instancia do problema mais o espaco extra necessario pararealizar a computacao

Ideia 2 (mais usual): Definir a complexidade de espaco de um problema levandoem consideracao apenas o espaco extra necessario.

Nesta aula: Nao nos preocuparemos com a complexidade de espaco deproblemas, mas apenas com a complexidade de espaco de armazenamento dografo de entrada.

A descricao de um grafo G consome espaco proporcional a |V (G)|+ |E(G)|.

Ou seja, um grafo (V (G),E(G)) consome O(|V (G)|+ |E(G)|) posicoes dememoria para ser armazenado no computador.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 17: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeada

Para cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 18: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 19: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 20: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 21: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 22: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 23: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 24: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:

∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 25: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 26: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Listas de Adjacencia

O conjunto V (G) e representado por um vetor ou por uma lista encadeadaPara cada v ∈ V (G), o conjunto ΓG (v) e representado por uma lista LG [v ].

Vertices

Um grafo com |V (G)| vertices precisa de um vetor de |V (G)| posicoes (usando vetor)ou de |V (G)| elementos de na lista de vertices (usando lista).

Uma posicao/elemento para cada vertice.

Cada posicao do vetor (se estivermo usando um vetor) ou elemento da lista (seestivermos usando uma lista) guarda um ponteiro para uma lista de arestas

Arestas

O tamanho da lista dos vizinhos de v em G e |LG [v ]| = |ΓG (v)| = δG (v)

Observe que teremos |V (G)| listas de arestas

Total para todas as listas de arestas:∑v∈V (G)

|LG [v ]| =∑

v∈V (G)

δG (v) = 2|E(G)|,

Representacao de todo grafo G : consome espaco O(|V (G)| + |E(G)|).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 27: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Matriz de Adjacencia

Analise muito mais simples:

Matriz de adjacencia

A representacao do grafo G por matriz de adjacencia consome espacoproporcional a |V (G)|2, independente do numero de aretas (inclusise se grafonao conter arestas).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 28: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Matriz de Adjacencia

Analise muito mais simples:

Matriz de adjacencia

A representacao do grafo G por matriz de adjacencia consome espacoproporcional a |V (G)|2, independente do numero de aretas (inclusise se grafonao conter arestas).

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 29: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Grafos direcionados

Lidando com grafos direcionados e ponderados:

Matriz de adjacencia

Por definicao lidam naturalmente com grafos direcionados e ponderados

Listas de adjacencia

Para cada v ∈ V (G) podemos usar listas separadas para Γ+(v) e Γ−(v)

Alternativamente, podemos criar um campo no no da lista indicando adirecao do arco

Para grafos com peso, acrescenta-se um campo para armazenar o peso.

Note: Tanto em matrizes com listas, grafos direcionados e ponderadosconsomem (assintoticamente) o mesmo espaco que grafos simples.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 30: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Grafos direcionados

Lidando com grafos direcionados e ponderados:

Matriz de adjacencia

Por definicao lidam naturalmente com grafos direcionados e ponderados

Listas de adjacencia

Para cada v ∈ V (G) podemos usar listas separadas para Γ+(v) e Γ−(v)

Alternativamente, podemos criar um campo no no da lista indicando adirecao do arco

Para grafos com peso, acrescenta-se um campo para armazenar o peso.

Note: Tanto em matrizes com listas, grafos direcionados e ponderadosconsomem (assintoticamente) o mesmo espaco que grafos simples.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 31: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Grafos direcionados

Lidando com grafos direcionados e ponderados:

Matriz de adjacencia

Por definicao lidam naturalmente com grafos direcionados e ponderados

Listas de adjacencia

Para cada v ∈ V (G) podemos usar listas separadas para Γ+(v) e Γ−(v)

Alternativamente, podemos criar um campo no no da lista indicando adirecao do arco

Para grafos com peso, acrescenta-se um campo para armazenar o peso.

Note: Tanto em matrizes com listas, grafos direcionados e ponderadosconsomem (assintoticamente) o mesmo espaco que grafos simples.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 32: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Grafos direcionados

Lidando com grafos direcionados e ponderados:

Matriz de adjacencia

Por definicao lidam naturalmente com grafos direcionados e ponderados

Listas de adjacencia

Para cada v ∈ V (G) podemos usar listas separadas para Γ+(v) e Γ−(v)

Alternativamente, podemos criar um campo no no da lista indicando adirecao do arco

Para grafos com peso, acrescenta-se um campo para armazenar o peso.

Note: Tanto em matrizes com listas, grafos direcionados e ponderadosconsomem (assintoticamente) o mesmo espaco que grafos simples.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 33: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Grafos direcionados

Lidando com grafos direcionados e ponderados:

Matriz de adjacencia

Por definicao lidam naturalmente com grafos direcionados e ponderados

Listas de adjacencia

Para cada v ∈ V (G) podemos usar listas separadas para Γ+(v) e Γ−(v)

Alternativamente, podemos criar um campo no no da lista indicando adirecao do arco

Para grafos com peso, acrescenta-se um campo para armazenar o peso.

Note: Tanto em matrizes com listas, grafos direcionados e ponderadosconsomem (assintoticamente) o mesmo espaco que grafos simples.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 34: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Grafos direcionados

Lidando com grafos direcionados e ponderados:

Matriz de adjacencia

Por definicao lidam naturalmente com grafos direcionados e ponderados

Listas de adjacencia

Para cada v ∈ V (G) podemos usar listas separadas para Γ+(v) e Γ−(v)

Alternativamente, podemos criar um campo no no da lista indicando adirecao do arco

Para grafos com peso, acrescenta-se um campo para armazenar o peso.

Note: Tanto em matrizes com listas, grafos direcionados e ponderadosconsomem (assintoticamente) o mesmo espaco que grafos simples.

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 35: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 36: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 37: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 38: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 39: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 40: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 41: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 42: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 43: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 44: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 45: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 46: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Espaco consumido:

Com matrizes e O(|V 2|) (considera maior quantidade possıvel de arestas)

Com listas e O(|V (G)| + |E(G)|).

2 Dado v , verificar se u e seu vizinho:

Com matrizes o custo e O(1) (independente do tamanho do grafo)

Com listas o custo e δG (v).

Variacao desta analise: Dado G , determinar se dois vertices sao vizinhos:

Matrizes: O(1)

Listas O(∆(G)) (tambem e correto dizer O(|V (G)|).

3 Dado v , percorrer sua vizinhanca:

Com matrizes o custo e O(|V (G)|) (mesmo para vertices isolados)

Com listas o custo e O(δG (v))

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 47: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 48: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 49: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)

2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 50: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 51: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)

Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 52: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 53: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 54: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 55: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 56: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 57: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos

Page 58: Algoritmos e Teoria dos Grafos Aula 04 - UFPR · Algoritmos e Teoria dos Grafos Aula 04 Prof. Murilo V. G. da Silva DINF/UFPR Material da Disciplina: Renato J. S. Carmo

Analise Comparativa

1 Percorrer todas as arestas:

Matriz: O(|V (G)|2), mesmo num grafo sem arestas

Listas: O(|V (G)| + |E(G)|)2 Determinar o grau de um vertice v :

Matriz: O(|V (G)|)Listas: O(δG (v))

3 Acrescentar uma aresta no grafo:

Matriz: O(1)

Listas: O(1)

4 Acrescentar um vertice:

Matriz: Pode nao ser possıvel (depende da possibilidade de realocarmemoria contıgua) ou pode envolver a copia de toda a matriz para outraregiao de memoria (custo O(|V |2)).

Listas: O(1)

Prof. Murilo V. G. da Silva Algoritmos e Teoria dos Grafos