Ir para conteúdo

POWERED BY:

Arquivado

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

ricardoluizv

Problema com Bubble Sorte

Recommended Posts

Estou tentando ordenar utilizando a técnica bubble sorte, mas não estou tendo resultado. Já tentei utilizar o ksort(), mas não tive resultado também, abaixo contém o meu código:

 

function ordenacaoAsc($dataInicial,$dataFinal,$naoTempo,$idfuncional){

for ($cont=0; $cont<sizeof($dataFinal); $cont++){
  for ($i=0; $i<sizeof($dataInicial); $i++){
        $w = $i+1;
        
                $auxDataInicial = $dataInicial[$w];
                if ($dataInicial[$i] > $auxDataInicial){
                                //Data Inicial
                        $aux = $dataInicial[$i];
                        $dataInicial[$i] = $dataInicial[$w];
                        $dataInicial[$w] = $aux;
                        //DataFinal
                        $aux = $dataFinal[$i];
                        $dataFinal[$i] = $dataFinal[$w];
                        $dataFinal[$w] = $aux;
                        //NaoContaTempo
                        $aux = $naoTempo[$i];
                        $naoTempo[$i] = $naoTempo[$w];
                        $naoTempo[$w] = $aux;
                        //IdFuncional
                        $aux = $idfuncional[$i];
                        $idfuncional[$i] = $idfuncional[$w];
                        $idfuncional[$w] = $aux; 
                        }
          }
        }
        

        $data->DataInicial = $dataInicial;
        $data->DataFinal = $dataFinal;
        $data->NaoTempo = $naoTempo;
        $data->idfuncional = $idfuncional;
        
        return $data;
}

 

 

 

Por favor, alguém poderia me ajudar? Preciso ordenar sem perder as referências com outros vetores

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra dar certo $i tem q começar com valor de $cont pra n ficar repetindo a mesma coisa varias vezes

for ($cont=0; $cont<sizeof($dataFinal); $cont++){  
   for ($i=$cont; $i<sizeof($dataInicial); $i++){

dá um exemplo aki pra você

$num[0] = 5;
$num[1] = 7;
$num[2] = 3;
$num[3] = 9;
$num[4] = 1;
$num[5] = 8;
print_r($num);//desordenado
$posicoes = sizeof($num);
for ($i = 0; $i < $posicoes; $i++){
	for($j = $i + 1; $j < $posicoes; $j++){
		if ($num[$i] > $num[$j]){
			$aux = $num[$j];
			$num[$j] = $num[$i];
			$num[$i] = $aux;
		}
	}
}
print_r($num);//ordenado

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.