Files
cours/cours algorithmique et complexité.md
2025-09-08 16:08:03 +02:00

34 lines
1.6 KiB
Markdown

---
author:
- "[[Bertrand GENTOU]]"
tags:
- s/informatique
- s/fac
number headings: auto, first-level 1, max 3, 1.1 -
---
> [!idea] But du cours
> Les [[IA générative|IAs génératives]] peuvent produire des programmes, mais pas de certifier qu'ils sont corrects.
> La moitié des attendus (examen) sont donc des preuves sur le code.
> L'autre moitié est de la production de code python.
> - i Jour 1 : "le deep learning n'arrivera jamais à ça [prouver la correction de son code]" (de la part d'un ancien ingénieur qui travaillait sur l'IA)
> [!info] Choses supposées connues
> - être à l'aise avec les calculs de [[complexité algorithmique]]
# 1 - Algorithmes de tris
Pdf du cours : [[M1_algo_chap1_algos_de_tri.pdf]]
- les [[algorithme de tri par comparaison]] ont une complexité d'au moins $O(n \log(n))$ [[démonstration complexité minimale algorithme de tri par comparaison|(démonstration)]]
- démonstration par invariant de boucle (exemple sur le [[tri par sélection]])
- on choisit une propriétée que l'on veut montrer vraie, et on la montre par récurrence sur la variable de boucle
- ! ne pas se tromper sur la propriété invariante. Pour le tri par sélection, la propriété doit être "les $i$ premier éléments sont à leur place définitive", et pas simplement "les $i$ premiers éléments sont triés", car on veut pouvoir faire la réccurence : il faut que les $i$ premiers soient *les plus petits du tableau* et pas simplement *des éléments triés parmi ceux du tableau*
- [ ] #task démonstration correction du tri par insertion ⏫ 📅 2025-09-15
- [ ] #task écrire *in place quick sort* ⏫ 📅 2025-09-15