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
publicclassBUbbleSort{publicstaticvoidmain(String[]args){intmaior=0,menor=0;int[]v={0,3,6,1,4,2,7,9,8,5};for(inti=0;i<v.length;i++){if(v[i]>maior)maior=v[i];}for(intj=0;j<v.length;j++){if(v[j]<menor)maior=v[j];}for(inti=0;i<v.length-1;i++){for(intj=0;j<v.length-1-i;j++){if(v[j]>v[j+1]){intaux=v[j];v[j]=v[j+1];v[j+1]=aux;}}}for(intk=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(intk=0;k<v.length-1;k--){System.out.print(v[k]-1);}}}
for(intk=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
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.
G
gzofera
tenta assim
publicclassBUbbleSort{publicstaticvoidmain(String[]args){// TODO Auto-generated method stubintmaior=0,menor=0;int[]v={0,3,6,1,4,2,7,9,8,5};for(inti=0;i<v.length;i++){if(v[i]>maior)maior=v[i];}for(intj=0;j<v.length;j++){if(v[j]<menor)maior=v[j];}for(inti=0;i<v.length-1;i++){for(intj=0;j<v.length-1-i;j++){if(v[j]>v[j+1]){intaux=v[j];v[j]=v[j+1];v[j+1]=aux;}}}for(intk=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(intk=v.length-1;k>=0;k--){System.out.print(v[k]);}}}
eh soh mudar a parte
for(intk=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
Por favor coloque um título no tópico que tem ligação direta com sua dúvida!
Obrigado!
jessica_cachichi
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.
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.
ViniGodoy
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:
publicclassTeste{publicstaticvoidmain(String[]args){intvetor[]={9,7,8,5,6,3,4,1,2,0};for(inti=0;i<vetor.length-1;i++)for(intj=i+1;j<vetor.length;j++)if(vetor[i]<vetor[j]){//Ordem descrescenteintaux=vetor[i];vetor[i]=vetor[j];vetor[j]=aux;}System.out.print("Números em ordem: ");for(intnum:vetor)System.out.print(num+" ");System.out.println();System.out.println("Maior: "+vetor[0]);System.out.println("Menor: "+vetor[vetor.length-1]);}}
pimenta
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…