Bonjour à tous,
j'aimerais savoir comment on effectue une recherche dichotomique dans un tableau de String en utilisant "s1.compareto(s2)"
Mais le truc c'est que concrètement, je sais pas où placer le "compareTo" car je sais qu'il renvoi une valeur, et je crois que cette valeur dépend du placement des lettres dans l'alphabets et retourne un entier mais ça j'ai pas très bien compris exactement, en gros on va comparer la valeur que nous donne compare to et on va le comparer avec le milieu du tableau?
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 public static int rechercheDicho(String cherche , String [] t) { int debut = 0; int fin = t.length-1; boolean trouve = false; for(int i =0;i<t.length;i++) { int resul = cherche.compareTo(t[i]); int milieu = (debut + fin)/2; while(debut <= fin && ! trouve ) { if(t[milieu] == resul) { trouve = true; }else if(resul > cherche) { fin = milieu-1; }else { debut = milieu +1; } milieu = (debut+fin)/2; } if(trouve) { return milieu; }else { return -1; } } }
Partager