Otimização de algoritmos

Este artigo foi desenvolvido juntamente com os colegas da faculdade: Bruno Alisson, Higor Vinicius, Jean Silvestre. Ele pretende mostrar a importância da otimização de algoritmos e a definição de algoritmo e de otimização.

[ Hits: 47.881 ]

Por: João Carlos abreu Junior em 17/07/2006


Otimização de Algoritmos



Segundo BENNATON (2006:1): "Otimizar é melhorar até onde pudermos. No ideal, melhorar até o máximo. Até aquela situação ideal na qual, como vulgarmente se diz, se mexer mais, piora".

Otimizar então é melhorar, essa melhora é uma mudança de um processo que resulta em um ganho. Otimizar algoritmos é efetuar essa melhora em algum algoritmo pronto para resolução de um determinado problema, mas que ainda pode ser alterado para efetuar a resolução da melhor maneira possível ou encontrada, visto que para selecionar a melhor maneira dependemos de termos escolhas e critérios. Abaixo serão apresentados dois algoritmos um sem nenhuma otimização para resolver o problema de ordenação de uma matriz utilizando o método bolha e o segundo corresponde a otimização do mesmo.

O primeiro algoritmo chama a função bolha passando a quantidade de elementos (n) e a matriz (v) que se deseja ordenar de ordem crescente. Então esta função utiliza duas estruturas de repetição. A primeira estrutura percorre da posição n-1 até 1, decrementando a variável i, onde i recebe n-1 no começo da repetição. Enquanto que a segunda em conjunto com a primeira estrutura de repetição percorre 1 até i, verificando se a posição atual é maior do que a próxima, caso positivo será efetuado a troca. Na figura 1 abaixo, é apresentado o algoritmo em questão.


Figura 2 - Algoritmo de ordenação sem otimização

O segundo algoritmo é uma implementação otimizada do primeiro. O processo de ordenação é o mesmo, porém o segundo algoritmo possui uma variável que diz se ocorreu uma troca dentro do repita interno, caso não tenha ocorrida nenhuma troca o função retorna, pois o vetor já esta ordenado. Na figura 2 abaixo, tem-se a visualização do algoritmo.


Figura 2 - Algoritmo de ordenação com otimização
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Algoritmos
   3. Otimização de Algoritmos
   4. Conclusão
Outros artigos deste autor

Instalação do Slackware 11.0 sem medo

Leitura recomendada

Linguagem C - Árvores Binárias

Dicas para aprender programação

Tutorial SDL

Análise dos Métodos de Ordenação usados em Algoritmos Computacionais

Linguagem C - Listas Duplamente Encadeadas

  
Comentários
[1] Comentário enviado por removido em 17/07/2006 - 16:18h

unrrun

[2] Comentário enviado por removido em 17/07/2006 - 20:03h

aaaaaaaaaffffffffffffffffffff!!!

[3] Comentário enviado por yusuke em 18/07/2006 - 09:08h

qual a nota que vcs tiraram por este "artigo" ?

[4] Comentário enviado por tobias_felipe em 18/07/2006 - 10:36h

Pô cara, 'cê mandou um trabalho de escola pro site? Não dava nem pra disfarçar um pouco?

[5] Comentário enviado por jcaj em 18/07/2006 - 10:39h

Caro tobias_felipe a intenção não era de disfarçar e sim passar o conhecimento que obtivemos fazendo o trabalho. Se você acha que trabalho escolar não é interessante ficar exposto aqui no site, de onde você acha que vem o avanço da tecnologia?

[6] Comentário enviado por Ragen em 18/07/2006 - 11:02h

jcaj,

O artigo é bastante didatico, mas muito superficial. Você poderia ter abordado questões mais práticas e aplicadas ao desenvolvimento real de softwares.

Por exemplo: abordado pre-processamento e pre-caching, praticas que se adaptam a quase qualquer tipo de problema.

[7] Comentário enviado por ulisses_castro em 18/07/2006 - 11:35h

O ministério da saúde adverte:

Fumar Maconha antes de mandar artigos causa edêma cerebral!

o.O


[8] Comentário enviado por fdettoni em 18/07/2006 - 15:47h

Cadê o conteudo do artigo?


[9] Comentário enviado por edsonjbueno em 19/07/2006 - 02:08h

Quem ja sabe é facil criticar e colocar defeitos em vez de contribuir, mas tem muita gente que esta aprendendo, e ajuda bastante o artigo...

[10] Comentário enviado por htampieri em 04/08/2006 - 20:16h

a importancai de artigo nao é esclarecer todas as duvidas do leitor mas sim acrescentar conteudo ao seu intelectuo. nao vejo diferença em puplicar um artigo cientifico de faculdade pois a maioria deles são mesmo de faculdade. o que importa é conteudo.

Higor.

[11] Comentário enviado por ubuntuvitor em 17/09/2007 - 19:40h

Gente vamos com calma porque, o connhecimento se adquire com pequenas coisas, sei que o trabalho dos colegas esta superficial so que lembre-se sempre temos novos cadastro no site de pessoas que estão começando a programar. Por isso se ao é do seu interesse o material apenas agradeça a pessoa porque ele ao menos teve a boa vontade de ajudar.
" ninguem sabe tudo mas todos juntos sabem tudo"
Vitor Cloves

[12] Comentário enviado por vagnerpolles em 07/07/2009 - 11:50h

Acredito que todos os artigos na area de logica sao bem vindos, o processo de adquirir conhecimento e algo ciclico, comeca com pequenos passos.

Nos instigamos por algum assunto;
Aprendemos algo;
Aplicamos este conhecimento;
Temos novas interesses;
Nos instigamos por algo novo... e repetimos o processo inúmeras vezes.

Caro Joao Carlos, nao se deixe influenciar pelo negativismo e aprenda com todos os comentários.

O Sabio tem certeza apenas de uma coisa: Que ele nao sabe tudo!


Contribuir com comentário