j'ai trouver un code mais j'arrive pas a le comprende
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
// Tri selection
    ////////////////
    static Liste Tri_Selection_Liste(Liste l)
    {
 if (l == null)
     return null ;
 
 // Recherche du minimum : attention au decalage d'un cran de l1 et l2
 Liste l1 = l, l2 = null ; ;
 int min = l.elt ;
 while (l1.suivant != null) {
     if (l1.suivant.elt < min) {
  min = l1.suivant.elt ;
  l2 = l1 ;
     }
     l1 = l1.suivant ;
 }
 
 // On supprime le minimum de la liste
 if (l2 == null) {
     l.suivant = Tri_Selection_Liste(l.suivant) ;
     return l ;
 }
 else {
     l1 = l2.suivant ;
     l2.suivant = l2.suivant.suivant ;
     l1.suivant = Tri_Selection_Liste(l) ;
     return l1 ;
 }
    }
 
    // Tri insertion
    ////////////////
    static Liste Tri_Insertion_Liste(Liste l)
    {
 // On prend le premier element
 Liste l2 = l ;
 l = l.suivant ;
 l2.suivant = null ;
 
 // On ajoute les elements suivants
 while (l != null) {
     if (l.elt < l2.elt) {
  Liste l1 = l ;
  l = l.suivant ;
  l1.suivant = l2 ;
  l2 = l1 ;
     }
     else {
  Liste l1 = l ;
  l = l.suivant ;
  l1.suivant = null ;
  Ajout_Trie_Liste(l2, l1) ;
     }
 }
 return l2 ;
    }
 
    // Fonction d'ajout d'un element dans une liste triee
    static void Ajout_Trie_Liste(Liste l, Liste l1) {
 if (l.suivant == null) {
     l.suivant = l1 ;
 }
 else if (l1.elt < l.suivant.elt) {
     l1.suivant = l.suivant ;
     l.suivant = l1 ;
 }
 else
     Ajout_Trie_Liste(l.suivant, l1) ;
    }
merci