Metodo de inserção RESOLVIDO



/*

1A - elaborar um prog , capaz de receber 5 nºs inteiros via teclado , e inseri-los 
em um vetor . Após isto , ordenar o vetor utilizando o metodo de inserção e apresentar 
o vetor ordenado em tela.

Insertion Sort

 */
   import javax.swing.*;

    public class Exer1 {
   
       public static void insertionSort(int[] array) {
      // variavel temp
         int elementoAtual;
      
      // loop ate o ultimo elemento
         for (int i = 0; i < array.length; i++) {
         // guarda o valor
           elementoAtual = array[i];
         // inicializa a variavel localização
            int indiceAtual = i;
            
            while (indiceAtual > 0 && array[indiceAtual - 1] > elementoAtual) {
               array[indiceAtual] = array[indiceAtual - 1];
               indiceAtual--;
            }
            array[indiceAtual] = elementoAtual;
            imprimir(array);
         }
      }
       public static void imprimir ( int [] array ){
       
         for ( int i = 0 ; i < array.length ; i++ ) {
            System.out.print ( " " + array[i]);
            
         }
         System.out.print ( "\n");
         
         
        
         
      	
      }
         
       
   
   
         
      
   
       public static void main(String args[]) {
      
         String aux = " ";
         int array[] = new int[5];
      
         for (int i = 0; i < array.length; i++) {
            aux = JOptionPane.showInputDialog(" Insira o  " + (i + 1)
               + "º elemento");
            array[i] = Integer.parseInt(aux);
         
         
         }
      
         System.out.println ( "Elemento não ordenados  ");
         imprimir(array);
         
         System.out.println ("Ordenando por inserção " );
         insertionSort(array);
         System.out.println ( " Elementos ordenados ");
         imprimir(array); 
      
      }
   
   }


----------------------------------inserção : 

começando do ultimo elemento ordeno , ai é q ta o meu problema não estou conseguindo onde estou errando na logica ?


/*
3A - Alterar o metodo Inserção do exer 2A de forma que ele ordene crescentemente , 
 do maior   para o menor elemento . 
 */
 
 
   import javax.swing.*;

    public class Exer3A {
   
       public static void insertionSort(int[] array) {
      // variavel temp
         int elementoAtual;
      
      // loop ate o ultimo elemento
         for (int i = array.length - 1 ; i > 0 ; i--) {
         // guarda o valor
           elementoAtual = array[i];
         // inicializa a variavel localização
            int indiceAtual = i;
            
            while (indiceAtual < array.length - 1 && array[indiceAtual - 1] < elementoAtual) {
               array[indiceAtual] = array[indiceAtual - 1];
               indiceAtual++;
            }
            array[indiceAtual] = elementoAtual;
            imprimir(array);
         }
      }
       public static void imprimir ( int [] array ){
       
         for ( int i = 0 ; i < array.length  ; i++ ) {
            System.out.print ( " " + array[i]);
            
         }
         System.out.print ( "\n");
         
         
        
         
      	
      }
         
       
   
   
         
      
   
       public static void main(String args[]) {
      
         String aux = " ";
         int array[] = new int[5];
      
         for (int i = 0; i < array.length; i++) {
            aux = JOptionPane.showInputDialog(" Insira o  " + (i + 1)
               + "º elemento");
            array[i] = Integer.parseInt(aux);
         
         
         }
      
         System.out.println ( "Elemento não ordenados  ");
         imprimir(array);
         
         System.out.println ("Ordenando por inserção " );
         insertionSort(array);
         System.out.println ( " Elementos ordenados ");
         imprimir(array); 
      
      }
   
   }

Cara
Qual é sua dúvida?
Não é só postar o código que agente vai milagrosamente entender onde está dando errado -.-

Hahhahahahah

Acho que o erro tá aqui:

array[indiceAtual] = array[indiceAtual - 1];  

pedroroxd …

ja falei mano… a porra num funciona é na ordenação… --"

ta com preguii então num respondi o topico.

[quote=van bommel]pedroroxd …

ja falei mano… a porra num funciona é na ordenação… --"

ta com preguii então num respondi o topico.
[/quote]
Cara
deixa de ser burro… Agora que vi…
Vc postou a dúvida dentro da tag code
Ae não dá né?

Porque o que  fica dentro da tag code tem que ser o código -.-

Quem olha o tópico acha que só tem código…
Ps: foi vc que começou falando palavrão =X

ta bom bobao …
aqui é um forum ;de ajuda .
num vo ficar brigando tenho mais oq fazer.

Conflito nível 5 esse… de acordo com o tópico…

http://www.guj.com.br/posts/list/201395.java

[quote=rogelgarcia]Conflito nível 5 esse… de acordo com o tópico…

http://www.guj.com.br/posts/list/201395.java[/quote]
kkkk
se pah não…
axo que ta no 4

[code]public static void insertionSort(int[] array) {
// variavel temp
int elementoAtual;

  // loop ate o ultimo elemento
     for (int i = array.length - 1 ; i >= 0 ; i--) {
     // guarda o valor
        elementoAtual = array[i];
     // inicializa a variavel localização
        int indiceAtual = i;
        
        while (indiceAtual < array.length - 1  && elementoAtual > array[indiceAtual + 1]) {
           array[indiceAtual] = array[indiceAtual + 1];
           indiceAtual++;
           
        }
         
        array[indiceAtual] = elementoAtual;
     
        imprimir(array);
     }
  }

[/code]

Consegui sozinho…

parabéns…
Vá ao primeiro tópico, clique editar, e acrescente [RESOLVIDO]
E da proxima vez não seja grosso com quem quer ajudar, porque ae eles vão tentar =)

so retribui, a sua ironia…
mas se ta ligado q as vezes estamos de cabeça quente .