algorithmique (école d'ingénieur) · Chapitre 14 · Exercice de TD
Est-ce un tas ?
Les tris · niveau 1 (application)
Énoncé
Écrire une fonction boolean estTas(int[] T, int n) qui décide en si est un tas (max). Les tableaux et sont-ils des tas ? Un tableau trié par ordre décroissant est-il toujours un tas ?
Corrigé
est un tas si et seulement si chaque case est inférieure ou égale à son père .
static boolean estTas(int[] T, int n) {
// I(i) : pour tout j dans [1:i], T[(j-1)/2] >= T[j]
for (int i = 1; i < n; i++) if (T[(i - 1) / 2] < T[i]) return false;
return true;
}
14.9 : true false true
est un tas. n'en est pas un : la case (valeur ) a pour père la case (valeur ). Le troisième test est le tas construit dans l'exercice 14.1. Un tableau trié par ordre décroissant est toujours un tas, puisque le père précède . La réciproque est fausse. La fonction fait au plus comparaisons : .
nom : T
valeurs : 9 7 8 3 8 6 1
colorier : 1 4
fleches : 1->4:7<8
legende : la case 4 dépasse son père, la case 1 : ce n'est pas un tas100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.