Problema con Bubble Sort

di il
3 risposte

Problema con Bubble Sort

Hey

Sto cercando di scrivere un algoritmo di ordinamento (Bubble sort)

il codice è il seguente:

import java.util.*;
public class Array4
{
	public static void riempi(int V[])
	{
		Scanner input=new Scanner(System.in);
		for(int i=0;i<V.length;i++)
		{
			System.out.print("\nInserisci un numero del vettore: ");
			V[i]=input.nextInt();
		}
	}
	
	public static int[] bubble(int V[])
	{
		int t;
		boolean flag;
		flag=true;
		
		while(flag==true)
		{
			flag=false;
			{
				for(int i=0;i<V.length+1;i++)
					{
					if(V[i+1]<V[i])
						{
							t=V[i];
							V[i]=V[i+1];
							V[i+1]=t;
							flag=true;
						}
					}
			}	
		}
	return V;
	}
	
	public static void stampa(int V[])
	{
		for(int i=0;i<V.length;i++)
		{
			System.out.println(V[i]+" ");	
		}
	}	
		
	public static void main (String[] args)
	{
		System.out.print("Di che lunghezza vuoi il vettore? ");
		Scanner input=new Scanner(System.in);  
		int L=input.nextInt();
		int []V=new int[L];
		
		riempi(V);
		stampa(V);
	    int[] k;
	    k=bubble(V);
	    System.out.println(k);
	} 
}
Dopo aver stampato l'array con i numeri inseriti si ferma il programma e dice:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
at Array4.bubble(Array4.java:26)
at Array4.main(Array4.java:56)

3 Risposte

  • Re: Problema con Bubble Sort

    Usa i tag CODE per postare il codice.
    Ad ogni modo la descrizione dell'eccezione è chiara: hai utilizzato degli indici fuori dai limiti.
    Io darei un'occhiata a queste istruzioni:
    for(int i=0;i<V.length+1;i++)
    if(V[i+1]<V[i])
    V[i]=V[i+1];
  • Re: Problema con Bubble Sort

    candaluar ha scritto:


    Usa i tag CODE per postare il codice.
    Ad ogni modo la descrizione dell'eccezione è chiara: hai utilizzato degli indici fuori dai limiti.
    Io darei un'occhiata a queste istruzioni:
    for(int i=0;i<V.length+1;i++)
    if(V[i+1]<V[i])
    V[i]=V[i+1];
    uh non capisco l'errore, grazie comunque delle informazioni
  • Re: Problema con Bubble Sort

    Stampa per debug il valore di i, e i+1.
    e confronta con il massimo indice del vettore (che parte da zero)
Devi accedere o registrarti per scrivere nel forum
3 risposte