no momento de executar o código abaixo ocorre o seguinte erro:
Ordenação o=new Ordenação();
> int[]v={2,1,6,5}
> o. ordenaçãoPorBolha(v)
ArrayIndexOutOfBoundsException: 4
at Ordenação.ordenaçãoPorBolha(Ordenação.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
//ordenação
class Ordenação
{
void ordenaçãoPorSeleção(int[]v)
{
int inicio=0,temp;
int indiceMinimo;
int indice;
for(inicio=0;inicio<v.length;inicio=inicio+1)
{
//acha menor elemento entre inicio e v.length-1
for( indiceMinimo=inicio, indice=inicio+1;indice<v.length;indice=indice+1)
{
if(v[indice]<v[indiceMinimo])
indiceMinimo=indice;
temp=v[inicio];
v[inicio]=v[indiceMinimo];//troca o menor elemento com o elemento do inicio
v[indiceMinimo]=temp;
}
}
}
void ordenaçãoPorBolha(int[]v)
{
int temp;
boolean houveTrocas;
//repete enquanto houver trocas
do
{
houveTrocas=false;
//percorre o vetor do inicio ao fim
//testando se v[i]<= v[i+1]
for(int i=0;i<v.length;i=i+1)
if(v[i]>v[i+1])
{
//troca os 2 de lugar
temp=v[i];
v[i]=v[i+1];
v[i+1]=temp;
houveTrocas=true;
}
}while(houveTrocas);
}
}
do que se trata?
obrigado.