Java quicksort: variable expected
Résolu
charline159
Messages postés
216
Statut
Membre
-
charline159 Messages postés 216 Statut Membre -
charline159 Messages postés 216 Statut Membre -
Bonjour, j'essaie de coder quicksort en java. Cependant, j'ai l'erreur suivante: "variable expected", aux lignes:
- 20 avec sequence.get(i)
- 21 (j)
- 26 (i+1)
- 27 (d).
Je ne comprends pas, étant donné que les variables sont bien déclarées.
Voilà le code:
- 20 avec sequence.get(i)
- 21 (j)
- 26 (i+1)
- 27 (d).
Je ne comprends pas, étant donné que les variables sont bien déclarées.
Voilà le code:
package com.company;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
public class Quicksort {
public static int partition(ArrayList<Integer> sequence, int g, int d){
int pivot = sequence.get(d);
int i = g-1;
for (int j = g; j<d; j++){
if (sequence.get(j)<=pivot){
i++;
int temp = sequence.get(i);
sequence.get(i) = sequence.get(j);
sequence.get(j) = temp;
}
}
int temp = sequence.get(i+1);
sequence.get(i+1) = sequence.get(d);
sequence.get(d) = temp;
return i+1;
}
public static ArrayList quicksort(ArrayList<Integer> sequence, int g, int d){
if (g<d){
int part = partition(sequence, g, d);
quicksort(sequence, g, part-1);
quicksort(sequence, part+1, d);
}
return sequence;
// ArrayList<Integer> flag = new ArrayList();
//
// int pivot = sequence.size()/2;
// int g = 0, d = sequence.size()-1;
//
// System.out.println("le pivot est à l'index " + pivot);
// System.out.println("d est à l'index "+d);
//
//
// if (sequence.get(g)>sequence.get(pivot)){
// sequence.add(pivot+1,sequence.get(g));
// sequence.remove(g);
// }
//
// if(sequence.get(d)<sequence.get(pivot)){
// sequence.add(pivot-1, sequence.get(d));
//
// }
//
// return sequence;
}
/**
* test quicksort
*/
public static void main(String[] args) {
ArrayList sample3 = new ArrayList();
sample3 = Sequence.sequenceGenerated(5);
System.out.println("la liste générée est: " + sample3);
sample3 = Quicksort.quicksort(sample3, 1, sample3.size()-1);
System.out.println("quicksort: " + sample3 );
}
}
A voir également:
- Variable expected
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel 5360 - Forum Mobile
- Jeux java itel touche - Forum Jeux vidéo
- Eclipse java - Télécharger - Langages
2 réponses
Bonjour,
sequence.get(i) renvoie une valeur, pas une variable. Tu ne peux pas modifier une valeur, il n'y a que les variables dont tu peux changer l'état.
Tu devrais plutôt utiliser la méthode set(int, E)
Remarque : tu peux aussi utiliser Collections.swap qui fait la même chose.
sequence.get(i) renvoie une valeur, pas une variable. Tu ne peux pas modifier une valeur, il n'y a que les variables dont tu peux changer l'état.
int n; n = 5; // n est une variable, 5 est une valeur : ok 5 = n; // variable expected (5 est une valeur)
Tu devrais plutôt utiliser la méthode set(int, E)
int temp = sequence.get(i); sequence.set(i, sequence.get(j)); sequence.set(j, temp);
Remarque : tu peux aussi utiliser Collections.swap qui fait la même chose.
Collections.swap(sequence, i, j); // import java.util.*;