|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2006
Città: dietro di te!
Messaggi: 340
|
[java]Bubble Sort
ho compilato questo bubble sort che data in entry una matrice piena di parole me le mette in ordine alfabetico.
il problema è che mi da un errore: Codice:
void exchange(String v[], int i, int a) //questa è la funzione che mi cambia l'ordine nell'array
{
String obk="vuoto";
obk= v[i];
v[i]=v[a];
v[a]=obk;
}
void main() {
String first="vuoto";
String next="vuoto";
String [] v={"c","d","me","lol","ciao","minch","fume","ciu","alur"};
int i = v.length;
while(i>0)
{
for(int j=0; j < i-1; j++)
{
int a=j++;
if(v[j].compareTo(v[a])<0) //qui controllo se uno viene prima dell'altro
exchange(v,j,a);
}
i--;
}
for (p=0; p<v.length;p++){
System.out.println(v[p]); //stampo a video la nuova matrice
}
}
main();
un errore l'ho trovato, pero adesso mi stampa a video una sequenza errata di lettere c d lol me ciao minch ciu fume alur suggerimenti? risolto il problema, e tra l'altro è una svista colossale..... vediamo chi indovina per primo? Ultima modifica di Killer Application : 17-02-2008 alle 19:47. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 90
|
Giusto perche' non mi passava un cazzo eh...
Codice:
public class BubbleSort {
private static void swap(String[] v, int i, int j)
{
String tmp = v[i];
v[i] = v[j];
v[j] = tmp;
}
public static void sort(String[] v)
{
boolean swapped = true;
while(swapped)
{
swapped = false;
for(int i = 0; i < v.length - 1; i++)
{
if(v[i].compareTo(v[i+1]) > 0)
{
swap(v, i, i+1);
swapped = true;
}
}
}
}
public static void main(String[] args)
{
String [] v={"c","d","me","lol","ciao","minch","fume","ciu","alur"};
BubbleSort.sort(v);
for(int i =0; i < v.length; i++)
System.out.println(v[i]);
}
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:02.



















