Rotina separa

0 respostas
van_bommel

Criar uma classe chamada buffer que contenha um atrib , vetor (int) cujo tamanho seja especificado
pelo seu construtor deve conter um método que receba valores (int) desse vetor e o indice do pivô (“pivot”)
retornar os valores (int) desse vetor , trabalhamos de maneira que , todos os valores menores ou iguais
ao elemento do pivô fiquem nos indices menores que o pivô e todos os valores maiores que o elemento
do pivô fiquem nos indices maiores ,

vez podem me ensinar uma logica que faça essa separação sem usar uma array auxiliar.
mas sim usando uma variavel Auxiliar

// usando um array como aux
       public static int [ ]  separa (int v[ ], int p ){
       
         int inic = 0 ;
         int fim =  v.length - 1 ;
         int vAux [ ]  = new int [ v.length]; 
         int auxI = 0 ;
         int auxF = fim ;
      
      
       
         while ( in > p ){
         
            if ( v[p] < v[fim ] ){ 
               vAux[auxF--] = v[fim--];
            }
            else{
               vAux[auxI++] = v[fim--]; 
              
            }
         
         }
         while ( inic < p ) {
            if ( v[inic] > v[p] ){ 
               vAux[auxF --] = v[inic++];
              
            }
            else
            { 
               vAux[auxI++] = v[inic++];
              
            
            }
         
         }
         
         vAux[auxF]  = v[p];
       
         return vAux;
       
       
       
       
       
       
       
      }
Criado 6 de maio de 2010
Respostas 0
Participantes 1