segunda-feira, 12 de novembro de 2012

Estrutura de dados: Classe de ordenação em java

Este código é uma classe Java que contém vários métodos de ordenação:
  • Ordenação Linear
  • Ordenação por Trocas ou Ordenacao Bolha (Bubble Sort)
  • Ordenação por seleção (Selection Sort)
  • Ordenação por inserção (Insert Sort)
  • Ordenação por Quick Sort Crescente
  • Ordenação por Quick Sort Decrescente
public class Ordenacao{

   //Ordenacao Linear
   public void linearSort(int iVet[]){

  int i, j, iAux;

  for(i=0; iiVet[j]){
     iAux=iVet[i];
     iVet[i]=iVet[j];
     iVet[j]=iAux;
     }
  }
  }
  }

 //Ordenacao por Trocas ou Ordenacao Bolha (Bubble Sort)
   public void bubbleSort(int iVet[]){

  int i, j, iAux;

  for(i=0; ii; j--){

     if(iVet[j-1] > iVet[j]){
     iAux = iVet[j];
     iVet[j] = iVet[j-1];
     iVet[j-1] = iAux;
     }
  }
  }
  }

 //Ordenacao por selecao (Selection Sort)
   public void selectionSort(int iVet[]){

  int a,b,c,t;

  for(a=0; a=0 && iT= iPivot) && (iBaixo < iAlto)){
     iAlto--;
  }

  if(iBaixo != iAlto){
     iVet[iBaixo] = iVet[iAlto];
     iBaixo++;
  }

  while((iVet[iBaixo] <= iPivot) && (iBaixo < iAlto)){
     iBaixo++;
  }

  if(iBaixo != iAlto){
     iVet[iAlto] = iVet[iBaixo];
     iAlto--;
  }
  }

  iVet[iBaixo] = iPivot;
  iP = iBaixo;
  iBaixo = iB;
  iAlto = iA;

  if(iBaixo < iP) quickSort(iVet, iBaixo, iP-1);
  if (iAlto > iP) quickSort(iVet, iP+1, iAlto);
  return;
  }

//Ordenacao por Quick Sort Decrescente
   public void quickSortDecres(int iVet[], int iBaixo, int iAlto){

  int iP, iB, iA, iPivot;
  iB = iBaixo;
  iA = iAlto;
  iPivot = iVet[iBaixo];

  while(iBaixo < iAlto){

  while((iVet[iAlto] <= iPivot) && (iBaixo < iAlto)){
     iAlto--;
  }

  if(iBaixo != iAlto){
     iVet[iBaixo] = iVet[iAlto];
     iBaixo++;
  }

  while((iVet[iBaixo] >= iPivot) && (iBaixo < iAlto)){
     iBaixo++;
  }

  if(iBaixo != iAlto){
     iVet[iAlto] = iVet[iBaixo];
     iAlto--;
  }
  }

  iVet[iBaixo] = iPivot;
  iP = iBaixo;
  iBaixo = iB;
  iAlto = iA;

  if(iBaixo < iP) quickSort(iVet, iBaixo, iP-1);
  if (iAlto > iP) quickSort(iVet, iP+1, iAlto);
  return;
  }

}

Nenhum comentário:

Postar um comentário