Premiers pas en JavaScript
30.1 tris tableaux
cuy copyleft
  See You Why?  

 


test tableaux join pop (29.9) | | exercices tri tableaux (30.?)

Contenu

 

 

I. La méthode sort()

Dans l'usage des tableaux, il s'avère souvent intéressant de pouvoir trier les informations selon un critère. La méthode sort() applicable aux tableaux, a été abordée dans le chapitre précédent.

JS a prévu une méthode intégrée pour effectuer ce type de tri : sort() situé derrière le nom d'un tableau, le renverra trié selon l'ordre alphabétique, aussi appelé lexicographique. Ainsi :
var monTableau = ["Siham","Kathia","Fred","Guy"];
var myArray2 = monTableau.sort();
document.print(myArray2);

écrira
"Fred","Guy","Kathia","Siham".

 

A. sort() sans argument : tri alphabétique

Cette méthode de tri a été rappelée dans le chapitre précédent.

De même :
var monTableau1 = [7,763,12,84];
var myArray3 = monTableau.sort();
document.print(myArray3);

écrira
12,7,763,84.

"Quelle erreur !" s'exclameront certains.
"Parfait !" sanctionneront ceux qui ont bien saisi le sens du début de ce chapitre.
En effet, si 7 est une valeur numérique inférieure à 12, il n'en reste pas moins vrai que 12 précède 7 dans l'ordre alphabétique (aka lexicographique), cet ordre étant défini par la valeur ASCII de chacun des caractères... et le premier chiffre de 12, soit 1, précède le premier chiffre de 7, donc...

Les codes ASCII (American Standard Code for Information Interchange) sont présents sur tous les claviers belges ou français, américains, espagnols ou allemands).
Tous, ayant un code inférieur à 128, peuvent être codés sur 7 bits.

Les 32 premiers ont une signification particulière, tels :
13, souvent noté CR (pour Carriage Return = retour de chariot) ou
10, souvent noté LF (pour Line Feed = saut de ligne)...

Les suivants sont les caractères dits latins et commun à toutes les langues qui l'utilisent : les chiffres 0 à 9 (ASCII 48 à 57), les lettres capitales non accentuées A à Z (ASCII 65 à 90), les mêmes lettres non accentuées en bas de casse a à z (ASCII 97 à 122), etc.

Décimal Caractère Décimal Caractère
32 espace      80 P
33 ! 81 Q
34 " 82 R
35 # 83 S
36 $ 84 T
37 % 85 U
38 & 86 V
39 ' 87 w
40 ( 88 X
41 ) 89 Y
42 * 90 Z
43 + 91 [
44 , 92 \
45 - 93 ]
46 . 94 ^
47 / 95 _
48 0 96 `
49 1 97 a
50 2 98 b
51 3 99 c
52 4 100 d
53 5 101 e
54 6 102 f
55 7 103 g
56 8 104 h
57 9 105 i
58 : 106 j
59 ; 107 k
60 < 108 l
61 = 109 m
62 > 110 n
63 ? 111 o
64 @ 112 p
65 A 113 q
66 B 114 r
67 C 115 s
68 D 116 t
69 E 117 u
70 F 118 v
71 G 119 w
72 H 120 x
73 I 121 y
74 J 122 z
75 K 123 {
76 L 124 |
77 M 125 }
78 N 126 ~
79 O 127 Suppr

Les caractères étendus ASCII répondent au besoin d'avoir davantage de caractères. Le code ASCII étendu comprend les 128 caractères présents dans le code ASCII (les nombres 0 à 32 figurent dans la table ci-dessous) et 128 caractères supplémentaires, pour un total de 256 caractères (donc codables sur 8 bits, soit 28 valeurs différentes).
Même avec ces caractères supplémentaires, de nombreuses langues comportent des symboles qu'il est impossible de résumer en 256 caractères. Il existe pour cette raison des variantes de code ASCII incluant des caractères et symboles régionaux.

Par exemple, la table ASCII connue également sous le nom ISO 8859-1 est utilisée par de nombreux logiciels pour les langues d'Amérique du Nord, d'Europe occidentale, d'Australie et d'Afrique. C'est la table généralement utilisée en HTML (voir ici). Les 128 nouveaux caractères sont inclus dans la table ci-dessous :

 

Décimal Caractère Décimal Caractère
128 ¬ 192 À
129 193 Á
130 194 Â
131 195 Ã
132 196 Ä
133 & 197 Å
134 198 Æ
135 ! 199 Ç
136 Æ 200 È
137 0 201 É
138 ` 202 Ê
139 9 203 Ë
140 R 204 Ì
141 205 Í
142 } 206 Î
143 207 Ï
144 208 Ð
145 209 Ñ
146 210 Ò
147 211 Ó
148 212 Ô
149 " 213 Õ
150 214 Ö
151 215 ×
152 Ü 216 Ø
153 " 217 Ù
154 a 218 Ú
155 : 219 Û
156 S 220 Ü
157 221 Ý
158 ~ 222 Þ
159 x 223 ß
160   224 a
161 ¡ 225 á
162 ¢ 226 â
163 £ 227 ã
164 ¤ 228 ä
165 ¥ 229 å
166 ¦ 230 æ
167 § 231 ç
168 ¨ 232 è
169 © 233 é
170 ª 234 ê
171 « 235 ë
172 ¬ 236 ì
173 ­ 237 í
174 ® 238 î
175 ¯ 239 ï
176 ° 240 ð
177 ± 241 ñ
178 ² 242 ò
179 ³ 243 ó
180 ´ 244 ô
181 µ 245 õ
182 246 ö
183 · 247 ÷
184 ¸ 248 ø
185 ¹ 249 ù
186 º 250 ú
187 » 251 û
188 ¼ 252 ü
189 ½ 253 ý
190 ¾ 254 þ
191 ¿ 255

 

B. sort() avec argument : tri numérique

Nous savons que le code suivant :
var valeurs = [1,2,17,21,107, 201];
alert(valeurs.sort());

va afficher :
1, 107, 17, 2, 201, 21.

Généralement, lorsque l'on traite des valeurs numériques, si l'on souhaite les trier, ce n'est généralement pas le tri alphabétique (aussi appelé lexicographique) qui nous intéresse... sauf erreur, un classement selon des valeurs croissantes ou décroissantes parait souhaitable.

Heureusement, JS propose d'ajouter un argument à la méthode sort() pour qu'elle fasse un tri numérique. Il s'agit d'y ajouter l'argument noté ici en rouge :
var valeurs = [1,2,17,21,107, 201];
alert(valeurs.sort(function(a, b){return a-b}));

qui va afficher :
1, 2, 17, 21, 107, 201 ce qui devrait convenir pour un tri numérique.

Un début d'explication de cette fonction argument ?

C. un début d'explication...

Nous savons (depuis le chap.4 [types de variables]) que les variables chez JS ne sont pas typées. Ainsi, la fonction sort(), sans arguments, convertit les éléments du tableau à trier comme des variables de type 'string' ou chaines de caractères.

On sait aussi, depuis le chap.12 (opérateurs mathématiques), que l'opérateur '+' peut renvoyer une variable de type 'number' qui sera la somme des opérandes (résultat de l'addition des opérandes), à condition que tous les opérandes soient de type 'number'. À défaut, JS considérera que l'opérateur '+' est l'opérateur de concaténation et "18" + 11 donnera "1811".

L'opérateur '-' renvoie une variable de type 'number' qui sera la différence des opérandes (résultat de la soustraction des opérandes) à condition que les opérandes soient de type 'number' ou convertibles en variables de type 'number'.

C'est bien un des buts poursuivis par cette fonction paramètre de la fonction 'sort' appliquées sur des tableaux (arrays).

 

II. Les algorithmes de tri

voir suite >>>

 

 

VIII. Exercices relatifs aux tris de tableaux

voir suite >>>

 

 


test tableaux join pop (29.9) | | exercices tri tableaux (30.8)

 

 

Merci de votre visite à partir de :

Vous êtes sur :
https://cuy.be/cours/jvs/jvs_300_tris_tableaux.html

partager sur FaceBook...           consulter sur FaceBook...

 

copyleft
Des liens ne fonctionnent plus ?
Avez-vous des suggestions ?
des commentaires, des corrections, un encouragement... ?
Pour info : Non, il n'y a pas de version papier ou DOC, PDF, etc. de ces notes.


Envoyez-moi un E-Mail (cuy(point)w(at)skynet(point)be)

Attention (at) signifie @ et (point) signifie .

Accueil CUY = See you why?

Compteur gratuitEasyCounter     BelStat Monitored by BelStat - Your Site Counts
La 1 000 000e page a été visitée le 21 mai 2010.
La 2 000 000e page a été visitée ce 18 mars 2012, vers midi.
La 3 000 000e page a été visitée ce 7 janvier 2014 entre 18 h et 18 h 45,
La 4 000 000e page a été visitée ce 5 juin 2015 entre 15 h 49 et 15 h 52,
La 5 000 000e page a été visitée ce 29 aout 2017 après 23 h 30,
Et la 6 000 000e page visitée, trop tôt pour y penser ?
 
et, d'après BelStat, CUY est visité surtout en semaine, peu le weekend...
moins et irrégulièrement pendant les vacances :

visites sur 3 mois, de la mi octobre 2013 à la mi janvier 2014.
 
La 3 333 333e page visitée a eu lieu ce mardi 10 juin 2014, en début d'après midi...
La 3 666 666e page visitée a eu lieu ce dimanche 28 decembre 2014, vers 16 h...
Un tiers de million de pages visitées en 154 jours cela fait une moyenne de 2165 pages visitées par jour...
Deux tiers de million de pages visitées en 355 jours soit une moyenne de 1878 pages visitées par jour...
et seulement 1195 pages visitées quotidiennement pendant les vacances estivales
de la mi juin à la mi septembre 2014

Vous voulez lire quelques messages reçus ?
quelques encouragements ?
Cliquez ici


Fin septembre 2009, installation de ce compteur
qui ne compte chaque nouvel ordinateur visiteur qu'une seule fois
free counter
 
m-à-j du 22/11/2021 :

Depuis cette fin septembre 2009, parmi les 210 pays (sur 274 drapeaux connus) qui nous ont visité,
voici les 100 pays qui nous visitent le plus, 
Nos petits visiteurs, classés par date de visite, où un seul ordi nous a visité, sont :
199. Turkmenistan (TM May 10, 2017) ; 200. Lesotho (LS March 1, 2017) ;
201. Turks and Caicos Island (TC January 18, 2016
202. Cook Islands (CK September 19, 2015)  203. Faroe Islands (FO January 27, 2015
204. Virgin Islands American (VI November 12, 2014) ;
205. Belize (BZ September 29, 2014) ;206. Eswatini - Swaziland (SZ July 21, 2014) ;
207. Grenada (GD April 3, 2014) ; 208. Timor-Leste (TI March 29, 2014) ;
209. American Samoa (AS December 26, 2012) ; 210. Guyana (GY November 5, 2010).