{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "# Table of Contents\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercice d'algorithmique - Agrégation Option Informatique\n", "## Préparation à l'agrégation - ENS de Rennes, 2016-17\n", "- *Date* : 29 août 2017\n", "- *Auteur* : [Lilian Besson](https://GitHub.com/Naereen/notebooks/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## À propos de ce document\n", "- Ceci est une *proposition* de correction, pour un exercice (simple) d'algorithmique, pour la préparation à l'[agrégation de mathématiques, option informatique](http://Agreg.org/Textes/).\n", "- Ce document est un [notebook Jupyter](https://www.Jupyter.org/), et [est open-source sous Licence MIT sur GitHub](https://github.com/Naereen/notebooks/tree/master/agreg/), comme les autres solutions de textes de modélisation que [j](https://GitHub.com/Naereen)'ai écrite cette année.\n", "- L'implémentation sera faite en OCaml, version 4+ :" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The OCaml toplevel, version 4.04.2\n" ] }, { "data": { "text/plain": [ "- : int = 0\n" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Sys.command \"ocaml -version\";;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "----\n", "\n", "## Le problème : tri à bulles et tri cocktail\n", "\n", "On s'intéresse à deux algorithmes de tris.\n", "Pour plus de détails, voir les pages Wikipédia (ou le [Cormen] par exemple) :\n", "\n", "- [Tri à bulle](https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles),\n", "- [Tri cocktail](https://fr.wikipedia.org/wiki/Tri_cocktail).\n", "\n", "On veut implémenter les deux et les comparer, sur plein d'entrées." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "----\n", "\n", "## Tri à bulles\n", "\n", "Commençons par le plus classique." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "val swap : 'a array -> int -> int -> unit =