Adloun

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 tas

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →