Bonsoir,

Je pense que mon code de Tri Rapide est correct.
Mais je ne parviens pas à rappeler le résultat de mon tri.

Merci pour votre aide et vos conseils.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.util.*; 
public class Main{
    private static Scanner reader;
 public static void main(String[] args) {
    reader = new Scanner(System.in);
    System.out.print("Entrez le nombre d'entiers à trier :");
	  int k  = reader.nextInt(); 
    int T[] = new int [k];
        int nxt;
		for(int i =0; i<k;i++){
    Random ran = new Random(); 
    nxt = ran.nextInt(100);
    T[i]=nxt;
    }
    System.out.print("Avant le tri  ");
    for (int n:T)
    System.out.print(n+" ");
      triRapide ( T[]);
    System.out.print("\nAprès le tri  ");
    for (int n:T)
       System.out.print(n+" ");
 }
    public static void triRapide(int T[])
    {
    int longueur=T.length;
    triRapide(T,0,longueur-1);
    }
 
    private static int partition(int T[],int deb,int fin)
        {
        int compt=deb;
        int pivot=T[deb];
 
        for(int i=deb+1;i<=fin;i++)
            {
            if (T[i]<pivot)
                {
                compt++;
                echanger(T,compt,i);
                }
            }
        echanger(T,deb,compt);
        return(compt);
        }
 
    private static void triRapide(int T[],int deb,int fin)
        {
        if(deb<fin)
            {
            int positionPivot=partition(T,deb,fin);
            triRapide(T,deb,positionPivot-1);
            triRapide(T,positionPivot+1,fin);
            }
        }
}