Algoritmos e Matrizes Esparsas
Seqüência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema.
2. O que significa dizer que um algoritmo executa em um tempo proporcional a n?
Significa que quanto maior o n, maior é o tempo de execução.
3. Sobre Matrizes Esparsas (ME)
3.1 Quais suas vantagens
Resp.: Acesso direto a cada elemento da matriz.
3.2 Quais suas desvantagens
Resp.: Excessivo nº de elementos nulos.
3.3 Dê exemplos de uso
Resp.: Planinhas Eletrônicas, pedido de um cliente no comercio eletrônico de grande loja virtual etc.
3.4 Defina vetor esparso, defina tanto sua declaração como sua funcionalidade.
O objetivo do método de vetores esparsos é obter uma economia computacional em refatorações de matrizes e nas soluções diretas, calculando somente as operações necessárias, diferente de nulos, nas substituições.
3.5 Faça algoritmos que leia e imprima uma matriz esparsa void imprime(tipo_nodo **lis,int linhas , int colunas )
{
int l , c ; tipo_nodo *aux; aux=*lis; printf("\n\n\n"); for (l=0;l < linhas;l++)
{
for(c=0;c < colunas;c++)
{
if(aux!=NULL)//este if teve de ser colocado porque se o aux chegar no fim e ele for nulo, ao testar o if abaixo, ele tenta acessar um registro nulo, dando erro de execução
{
if(l==aux- > lin && c==aux- > col)
{
printf("\t %d",aux- > dado); aux=aux- > prox;
}
else printf("\t0");//caso não tenha este else, nao aparecem alguns zeros, isso porqueo aux nao é null, entao nao entra no outro if.
}
else printf("\t0"); } printf("\n"); }
}