Java quicksort: variable expected
Résolu
charline159
Messages postés
208
Date d'inscription
Statut
Membre
Dernière intervention
-
charline159 Messages postés 208 Date d'inscription Statut Membre Dernière intervention -
charline159 Messages postés 208 Date d'inscription Statut Membre Dernière intervention -
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
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Jeux java itel 5360 - Forum Mobile
- Eclipse java - Télécharger - Langages
- Java apk - 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.*;