Ir para conteúdo
Fórum Script Brasil
  • 0

Galera problema de logica!


Justiceira

Pergunta

Tenho que fazer um algoritmo de inserção em matriz esparsa....Este abaixo

Porem gostaria muito que olhassem porque preciso saber se esta logica é "entendida" por outras pessoas também...

E se puderem dar dicas agradeço

valeu!!

Algoritmo insere

Declara i,para,item.. // item e aux seriam ponteiros
Recebe linha,coluna,valor //Recebe tem as variaveis que vêm de outra função.

com valor nelas.
INICIO
item <- Celula() //Alocando celula
item.valor <- valor
item.linha <- linha
item.coluna <- coluna
Ponteiro_aux <- cabeca
enquanto (i <= coluna) faça //Aqui a coluna tem valor 10
INICIO
| aux <- aux.direita
FIM
enquanto(para == 0)faça
INICIO
| SE(PARA == 0)E(aux.abaixo.coluna == -1)OU(aux.abaixo.linha>=linha)
| INICIO
| item.abaixo <- aux.abaixo
| aux.abaixo <- item
| para <- 1
| FIM
| ELSE
| aux <- aux.abaixo
| FIM_se
FIM_enquanto
aux <-cabeca
i <- 1
enquanto (i <= linha) faça //Aqui a linha tem valor 10
INICIO
| aux <- aux.abaixo
FIM
enquanto(para == 0)faça
INICIO
| SE(PARA == 0)E(aux.direita.linha == -1)OU(aux.direita.coluna>=coluna)
| INICIO
| item.direita <- aux.direita
| aux.direita <- item
| para <- 1
| FIM
| ELSE
| aux <- aux.direita
| FIM_se
FIM_enquanto
FIM
[/codebox]

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

imagine quando, numa matriz qualquer, a maoiria dos elementos sejam 0. exemplo, numa matriz 30X30, você sabe q de todos os 900 elementos q existirao na matriz inteira, você vai usar somente uns 50. os demais estariam preenchidos com 0 (ou qualquer outro valor q represente nulo, ou algum valor q seja irrelevante pra você armazenar, já q sera sempre o mesmo).

você estaria gastando mta memoria declarando todos os 900 elementos. em vez disso, o melhor seria você instanciar somente os elementos q você fosse usar.

matriz esparsa:

http://www.lcad.icmc.usp.br/~nonato/ED/Matrizes/node30.html

http://en.wikipedia.org/wiki/Sparse_matrix

Link para o comentário
Compartilhar em outros sites

  • 0

só sei sobre matrizes esparsas em teoria, mas pelo tamanho q você falou, mesmo q fossem matrizes comuns, as duas juntas ocupariam pouco mais de 1MB de memoria, se estivessem armazenando um valor inteiro longo. com uma terceira matriz pra guardar o resultado, ainda assim não chegaria em 2MB.

ou seja, não parece ser o suficiente pra dar falta de memoria, se você estiver usando um computador construido nos ultimos 10 anos.

qual linguagem você esta usando??

não sei exatamente como esta o seu codigo, mas sera q você não esta alocando varios espacos, e esquecendo de desalocar quando não precisar mais??

EDITADO:

ou é o valor de algum indice q estaria ultrapassando o limite da variavel??

mas acho q se fosse o caso, a mensagem seria "overflow" e não "out of memory".

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...