Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ChaosAngeL

Algoritimo

Recommended Posts

Galera, seguinte, preciso ler 4 numeros qualquer e escrevelos em ordem crescente e depois em decresente, pensei algumas formas muito extensas

 

Queria saber se tem uma forma mais simples de fazer isso

 

VLw

Compartilhar este post


Link para o post
Compartilhar em outros sites

A forma mais básica e simples é usando IF; Você pode fazer usando laço também,assim você economiza memória.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi a forma que eu pensei, atravez de if

 

mais tipo, penso que vai ficar muito grande se é do jeito que estou pensando

 

são 4 numeros, vamos supor a,b,c,d

 

tenho que colocalos em ordem

 

entaum teria que fazer um if para cada possibilidade ?

 

tipo

 

abcd

acdb

adbc

bacd

 

e assim por diante ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

são 4 numeros, vamos supor a,b,c,d

Sei que não foi proposital, mas como que A, B, C, D podem ser números :P

 

tenho que colocalos em ordem

 

entaum teria que fazer um if para cada possibilidade ?

Até aqui não. Uma vez que os números estejam numa matriz, basta você ordená-los ascendente ou descendentemente e depois exibir.

 

Não seu sob qual linguagem vai programar, mas dando um exemplo com PHP que é bem conhecido seria assm:

 

$numbers = range( 1, 10 ); // Cria a lista, de um a dez

shuffle( $numbers ); // embaralha

printf( '%s<br /><br />', implode( ', ', $numbers ) ); // exibe embaralhado, muda a cada refrseh da página

sort( $numbers ); // ordena crescentemente

printf( '%s<br /><br />', implode( ', ', $numbers ) ); // mostra 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

rsort( $numbers ); // ordena descrescentemente

printf( '%s<br /><br />', implode( ', ', $numbers ) ); // mostra 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

 

tipo

 

abcd

acdb

adbc

bacd

 

e assim por diante ?

Aí a coisa já muda um pouco, pois você deve criar uma matriz com todas as combinações possíveis entre os elementos de outra matriz.

 

Um exemplo, em PHP também seria essa função do Paulo Freitas (acho que ele tem conta aqui, não tenho certeza):

 

function getCombinations($chars, $length)
{
       $combinations = array();
       $temp[0]          = $chars;

       for ($i = 1; $i < $length; $i++) {
               for ($c = 0; $c < count($chars); $c++) {
                       $m = $i - 1;

                       for ($t = 0; $t < count($temp[$m]); $t++) {
                               $value = $chars[$c] . $temp[$m][$t];
                               $p       = ($c * count($temp[$m])) + $t;

                               $combinations[$p] = $value;
                               $temp[$i][$p]    = $value;
                       }
               }
       }

       return $combinations;
}

print '<pre>'; print_r(getCombinations(range(1, 4), 4));

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.