diff --git a/PreStSauveur/2nd/Algo/Tri/B_2nd_1.pdf b/PreStSauveur/2nd/Algo/Tri/B_2nd_1.pdf new file mode 100644 index 0000000..76d30db Binary files /dev/null and b/PreStSauveur/2nd/Algo/Tri/B_2nd_1.pdf differ diff --git a/PreStSauveur/2nd/Algo/Tri/B_2nd_1.tex b/PreStSauveur/2nd/Algo/Tri/B_2nd_1.tex new file mode 100755 index 0000000..3f14421 --- /dev/null +++ b/PreStSauveur/2nd/Algo/Tri/B_2nd_1.tex @@ -0,0 +1,96 @@ +\documentclass[a4paper,10pt, landscape]{classCours} +\usepackage{listings} + +\definecolor{darkWhite}{rgb}{0.94,0.94,0.94} + +\lstset{ + aboveskip=1mm, + belowskip=-1mm, + backgroundcolor=\color{darkWhite}, + basicstyle=\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + commentstyle=\color{red}, + deletekeywords={...}, + escapeinside={\%*}{*)}, + extendedchars=true, + framexleftmargin=16pt, + framextopmargin=3pt, + framexbottommargin=3pt, + frame=tb, + keepspaces=true, + keywordstyle=\color{blue}, + language=Python, + literate= + {²}{{\textsuperscript{2}}}1 + {⁴}{{\textsuperscript{4}}}1 + {⁶}{{\textsuperscript{6}}}1 + {⁸}{{\textsuperscript{8}}}1 + {€}{{\euro{}}}1 + {é}{{\'e}}1 + {è}{{\`{e}}}1 + {ê}{{\^{e}}}1 + {ë}{{\¨{e}}}1 + {É}{{\'{E}}}1 + {Ê}{{\^{E}}}1 + {û}{{\^{u}}}1 + {ù}{{\`{u}}}1 + {â}{{\^{a}}}1 + {à}{{\`{a}}}1 + {á}{{\'{a}}}1 + {ã}{{\~{a}}}1 + {Á}{{\'{A}}}1 + {Â}{{\^{A}}}1 + {Ã}{{\~{A}}}1 + {ç}{{\c{c}}}1 + {Ç}{{\c{C}}}1 + {õ}{{\~{o}}}1 + {ó}{{\'{o}}}1 + {ô}{{\^{o}}}1 + {Õ}{{\~{O}}}1 + {Ó}{{\'{O}}}1 + {Ô}{{\^{O}}}1 + {î}{{\^{i}}}1 + {Î}{{\^{I}}}1 + {í}{{\'{i}}}1 + {Í}{{\~{Í}}}1, + morekeywords={*,...}, + numbers=left, + numbersep=10pt, + numberstyle=\tiny\color{black}, + rulecolor=\color{black}, + showspaces=false, + showstringspaces=false, + showtabs=false, + stepnumber=1, + stringstyle=\color{gray}, + tabsize=4, + title=\lstname, +} + +\pagestyle{empty} +\geometry{left=10mm,right=10mm, top=7mm, bottom=7mm} + +\author{} +\title{} +\date{} + +\begin{document} + +\begin{minipage}{0.5\textwidth} + \begin{center} + {\Large + \textbf{Tri par Maximum} + } + \end{center} + + \includegraphics[height=500pt, width=370pt, keepaspectratio]{./fig/2nd1_max_diagramme} +\end{minipage} +\begin{minipage}{0.5\textwidth} + \lstinputlisting[language=Python]{tri_max.py} + \includegraphics[height=280pt, width=390pt, keepaspectratio]{./fig/2nd1_max} +\end{minipage} +\hfill + +\end{document} diff --git a/PreStSauveur/2nd/Algo/Tri/fig/2nd1_max.png b/PreStSauveur/2nd/Algo/Tri/fig/2nd1_max.png new file mode 100644 index 0000000..a5d41ed Binary files /dev/null and b/PreStSauveur/2nd/Algo/Tri/fig/2nd1_max.png differ diff --git a/PreStSauveur/2nd/Algo/Tri/fig/2nd1_max_diagramme.png b/PreStSauveur/2nd/Algo/Tri/fig/2nd1_max_diagramme.png new file mode 100644 index 0000000..bded181 Binary files /dev/null and b/PreStSauveur/2nd/Algo/Tri/fig/2nd1_max_diagramme.png differ diff --git a/PreStSauveur/2nd/Algo/Tri/index.rst b/PreStSauveur/2nd/Algo/Tri/index.rst index 431ba1a..f322121 100644 --- a/PreStSauveur/2nd/Algo/Tri/index.rst +++ b/PreStSauveur/2nd/Algo/Tri/index.rst @@ -107,18 +107,23 @@ Productions d'élèves +---------+---+---+---+---+---+ | Classes | 1 | 2 | 3 | 4 | 6 | +=========+===+===+===+===+===+ -| Symétrique foireux | | 3 | 3 | 3 | 3 | +| Symétrique foireux | 3 | 3 | 3 | 3 | 3 | +---------+---+---+---+---+---+ -| Min/max | | 2 | 2 | 2 | 4 | +| Min/max | 3 | 2 | 2 | 2 | 4 | +---------+---+---+---+---+---+ -| Bulles | | 1 | 2 | 2 | 1 | +| Bulles | 0 | 1 | 2 | 2 | 1 | +---------+---+---+---+---+---+ -| Bulles amélioré | | 0 | 0 | 0 | 0 | +| Bulles amélioré | 0 | 0 | 0 | 0 | 0 | +---------+---+---+---+---+---+ -| Insertion | | 0 | 1 | 0 | 0 | +| Insertion | 1 | 0 | 1 | 0 | 0 | +---------+---+---+---+---+---+ +Ce que j'appelle symétrique foireux est le tri où les élèves cherchent à faire 2 tas (les grandes les petites) en comparant les couples de cartes puis de bricoler une méthode pour joindre les tas. Ils y arrivent pour 4 cartes, parfois 6. Un groupe a trouvé une astuce pour 5, en imaginant une carte supplémentaire. Ceux qui ont réussi à faire quelque chose qui marche on, après avoir fait des tas, réalisé un tri à bulles. + +En passant voir les élèves, un groupe avait réussi à trouver une version amélioré du tri à bulles. Malheureusement, aucun écrit n'a réussi à décrire cette méthode. + Bilans proposés avec les productions d'élèves: +- `2nd1 <./B_2nd_1.pdf>`_ - `2nd2 <./B_2nd_2.pdf>`_ - `2nd3 <./B_2nd_3.pdf>`_ - `2nd4 <./B_2nd_4.pdf>`_ diff --git a/PreStSauveur/2nd/Algo/Tri/tri_max.py b/PreStSauveur/2nd/Algo/Tri/tri_max.py new file mode 100644 index 0000000..50c0eed --- /dev/null +++ b/PreStSauveur/2nd/Algo/Tri/tri_max.py @@ -0,0 +1,38 @@ +##### Initialisation +# la zone pioche +pioche = [101011, 110111, 100111, 101010, 101100] +# la zone défausse +defausse = [] +# la zone triée +triees = [] + +##### Tri +# tant qu'il reste des nombres dans cartes +# len compte les éléments d'une liste +while len(pioche) > 0: + # Tant qu'il y a des cartes dans la pioche + # On prend la première carte grâce au .pop() + carte_max = pioche.pop() + # On va la comparer avec toutes les autres + while len(pioche) > 0: + # On prend une autre carte + carte = pioche.pop() + if carte_max > carte: + # Si elle est plus petit, on l'ajoute dans la defausse + defausse.append(carte) + else: + # Sinon c'est l'autre qu'on defausse + defausse.append(carte_max) + # et on garde la carte tirée dans la main + carte_max = carte + # On ajoute la carte max dans les cartes triées + triees.append(carte_max) + # La defausse redevient la pioche + pioche = defausse + # On vide la defausse + defausse = [] + +##### Fin +# On affiche les cartes triées +print(triees) +