Programação

1 resposta
A
Oi... Preciso fazer através do método de ordenação bubbleSort, a ordenação de um vetor de forma que os indíces impar e par fiquem ordenados entre si. Segue o código que estou tentando implementar... A minha duvida é como saber quando o vetor já estará ordenado impar-par e como fazer parar de ordenar quanto já tiver ordenado.
package arraybub;
import java.util.*;
import javax.swing.*;
/**
 *
 * @author sabinec
 */
 public class ArrayBub
   {
   private long[] a;                 // ref to array a
   private int nElems;               // number of data items
   public int cont = 0;
       
//--------------------------------------------------------------
   public ArrayBub(int max)          // constructor
      {
      a = new long[max];                 // create the array
      nElems = 0;                        // no items yet
      }
//--------------------------------------------------------------
   public void insert(long value)    // put element into array
      {
      a[nElems] = value;             // insert it
      nElems++;                      // increment siz
      }
//--------------------------------------------------------------
   public String display()             // displays array contents
      {
       String vetor = " ";
      for(int j=0; j<nElems; j++){
           vetor = vetor + a[j];
      }        
         return vetor;   
      
      }
//--------------------------------------------------------------
   private void swap(int one, int two)
      {
      long temp = a[one];
      a[one] = a[two];
      a[two] = temp;
      }
   
   public void imparPar(){
       int j =0; 
       int ord1 = 0;
       int ord2 = 0;
       for(int i = 0; i<nElems*nElems; i++){
            for(j=nElems; j==1; j=j-2){
                if (a[j]<a[j-2]){
                    swap(j, j-2); 
                }
                else
                    ord1++;
                
            }
            if (j==2){
                j--;
            }
            else
                j++;            
            for(int in=j; in<nElems; in=in+2){
                if (a[j]>a[j+2]){
                    swap(j, j+2); 
                }
                else
                    ord2++;
             }  
             cont++; 
            /* if (ord1==??? && ord2==???){
                i=nElems*nElems;
                cont--;
             }*/
                     
        }   
   }
 }[quote][/quote]



Obrigado!!!

1 Resposta

J

Fala irmãozinho, confesso não poder te ajudar em relação ao método, mas em relação ao Portal Java vou te dar uma dica: Procure não repetir tópico, porque realmente não tem necessidade, normalmente é sem querer, por falta de conhecimento.
Um abraço irmão :wink:

Criado 29 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 1
Participantes 2