# 07 — La Météo **Algorithmes :** Tri par insertion + Recherche dichotomique **Difficulté :** Moyen **Durée estimée :** 1h — 1h15 --- ## Contexte Vous analysez les relevés de température d'un mois complet. Vous voulez les trier, calculer des statistiques, et savoir rapidement si une température précise a été atteinte ce mois-ci. --- ## Étapes ### Étape 1 — Trier les températures Implémentez `tri_insertion_temperatures(tab)` qui trie la liste de relevés par **température croissante**. Chaque relevé est un tuple `(jour, temperature)`. On trie selon la température (le deuxième élément). > **Indication** : comparez `tab[j-1][1]` et `x[1]` (le deuxième élément du tuple). ### Étape 2 — Statistiques de base Implémentez `statistiques(tab_trie)` qui affiche : - La température **minimale** et le jour où elle a été relevée - La température **maximale** et le jour où elle a été relevée - La **médiane** (la valeur au milieu une fois triée) > Rappel : la médiane d'une liste triée de taille n est à l'indice `n // 2`. ### Étape 3 — Recherche dichotomique Implémentez `temperature_atteinte(tab_trie, t)` : retourne `True` si la température `t` a été relevée, `False` sinon. > **Attention** : les relevés sont triés par température. La dichotomie doit comparer `tab[m][1]` (la valeur) avec `t`. ### Étape 4 — Visualisation ASCII Implémentez `histogramme(tab_trie)` qui affiche un histogramme horizontal des températures. ``` 5°C | ## 10°C | ##### 15°C | ######## ... ``` ### Étape 5 — Extension (si vous avez le temps) Ajoutez une fonction qui regroupe les relevés par **tranche de 5°C** et compte combien de jours tombent dans chaque tranche. --- ## Ce que vous devez rendre - Le programme complet avec statistiques et recherche - Réponse : pourquoi le tri par insertion est-il particulièrement efficace si les données sont **déjà presque triées** ?