Ajuda com bubblesort

eu to fazendo um exercicio aqui usando bubblesort ele tem que ordenar os numeros mostar o maior o menor e depois mostrar em ordem decrescente
essa psre aqui eu sei que ta errada

for(int k=0;k<v.length-1;k--){
            System.out.print(v[k]-1);

esse eh o codigo

[code]
public class BUbbleSort {

public static void main(String[] args) {
    int maior = 0,menor=0;
    int []v={0,3,6,1,4,2,7,9,8,5};
    for(int i=0;i<v.length;i++){
    if (v[i]>maior)
        maior=v[i];
         }
    for(int j=0;j<v.length;j++){
     if (v[j]<menor)
        maior=v[j];
    }
    for(int i=0;i<v.length-1;i++){
    for(int j=0;j<v.length-1-i;j++){
    if(v[j]>v[j+1]){
        int aux = v[j];
        v[j]=v[j+1];
        v[j+1]=aux;
     
    }
}

}
for(int k=0;k<v.length;k++){
System.out.print(v[k]);
}

    System.out.println(" o maior valor eh" + maior);
    System.out.println(" o menor valor eh" + menor);
    

    for(int k=0;k<v.length-1;k--){
        System.out.print(v[k]-1);
    }
}

 }
[/code]

grata

for(int k=v.length; k > 0;k--){
	System.out.print(v[k-1]);
}

O problema esta no for que vc falou mesmo, tentar mudar pra esse jeito que eu coloquei.

//Daniel

Boa tarde Colegas !

A sua dúvida é na logica ou na linguagem ?

Acho que você não deveria passar pelo vetor uma vez verificando qual é o maior e e outra qual é o menor e sim ordenando os números… dai no final na primeira posição você teria o menor e na ultima o maior, e poderia imprimir de traz para frente…

[]s.

tenta assim

public class BUbbleSort {


	public static void main(String[] args) {
		// TODO Auto-generated method stub


        int maior = 0,menor=0;
        int []v={0,3,6,1,4,2,7,9,8,5};
        for(int i=0;i<v.length;i++){
        if (v[i]>maior)
            maior=v[i];
             }
        for(int j=0;j<v.length;j++){
         if (v[j]<menor)
            maior=v[j];
        }
        for(int i=0;i<v.length-1;i++){
        for(int j=0;j<v.length-1-i;j++){
        if(v[j]>v[j+1]){
            int aux = v[j];
            v[j]=v[j+1];
            v[j+1]=aux;
         
        }
    }

}
        for(int k=0;k<v.length;k++){
            System.out.print(v[k]);
        }
        
        System.out.println(" o maior valor eh " + maior);
        System.out.println(" o menor valor eh " + menor);
        
 
        for(int k=v.length-1;k>=0;k--){
            System.out.print(v[k]);
        }
    }
    
     }

eh soh mudar a parte

for(int k=v.length; k > 0;k--){
	System.out.print(v[k-1]);
}

por essa aki que vai dar certo, vai imprimir em tela em ordem decrescente

 for(int k=v.length-1;k>=0;k--){
            System.out.print(v[k]);
        }

espero ter ajudado linda

vlws

Por favor coloque um título no tópico que tem ligação direta com sua dúvida!

Obrigado!

[quote=Zeed01]Boa tarde Colegas !

A sua dúvida é na logica ou na linguagem ?

Acho que você não deveria passar pelo vetor uma vez verificando qual é o maior e e outra qual é o menor e sim ordenando os números… dai no final na primeira posição você teria o menor e na ultima o maior, e poderia imprimir de traz para frente…

[]s.[/quote]

sim isso eh verdade mais o problema que nÃo faz muito tempo que to aprendendo isso, faz uns 3 meses e na facu to aprendendo as coisa muito rapido as vezes nao consigo assimila ai eu mesma tenho que correr a traz.Vou tentar mesmo fazer como vc ta falando eh mais facil.GRta.MUito obrigada pela ajuda e pelo toque, eh sempre bom ouvirmos as pessoas mais experiente.grata.

Só uma dica. Você não precisa guardar uma variável para o maior e o menor números.

Como você está ordenando o vetor, com certeza o menor número será o de índice 0, e o maior o de índice tamanho-1. Ou ao contrário, se você ordenar o vetor de maneira decrescente direto.

Teste você mesmo:

[code]
public class Teste {
public static void main(String[] args) {
int vetor[] = {9,7,8,5,6,3,4,1,2,0};

    for (int i = 0; i < vetor.length-1; i++)
        for (int j = i+1; j < vetor.length; j++) 
            if (vetor[i] < vetor[j]) { //Ordem descrescente
                int aux = vetor[i];
                vetor[i] = vetor[j];
                vetor[j] = aux;
            }
    
    System.out.print("Números em ordem: ");
    for (int num : vetor)
        System.out.print(num + " ");
    System.out.println();
    
    System.out.println("Maior: " + vetor[0]);
    System.out.println("Menor: " + vetor[vetor.length-1]);
}

}[/code]

Se puder usar um List vai te facilitar muito.

Tem os métodos sort, pra ordenar, max pro maior valor e min pro menor valor…

Dá uma olhada e vê se te ajuda.

Abraços,