Deutsch   English   Français   Italiano  
<vin3d6$1mos$1@cabale.usenet-fr.net>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!.POSTED!not-for-mail
From: Olivier Miakinen <om+news@miakinen.net>
Newsgroups: fr.comp.lang.python
Subject: =?UTF-8?Q?[SOLUTION]_Tri_de_cr=c3=aapes?=
Date: Tue, 3 Dec 2024 15:08:38 +0100
Organization: There's no cabale
Lines: 60
Message-ID: <vin3d6$1mos$1@cabale.usenet-fr.net>
References: <vikoqt$3eo5p$1@dont-email.me>
 <vimqp4$1h59$1@cabale.usenet-fr.net>
NNTP-Posting-Host: 200.89.28.93.rev.sfr.net
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
X-Trace: cabale.usenet-fr.net 1733234918 56092 93.28.89.200 (3 Dec 2024 14:08:38 GMT)
X-Complaints-To: abuse@usenet-fr.net
NNTP-Posting-Date: Tue, 3 Dec 2024 14:08:38 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Firefox/52.0 SeaMonkey/2.49.4
In-Reply-To: <vimqp4$1h59$1@cabale.usenet-fr.net>
Bytes: 3136

Solution du probl�me, ne pas lire tant que tu veux encore chercher.

En revanche, toute proposition d'am�lioration est la bienvenue.


Le 03/12/2024 12:41, Olivier Miakinen a �crit :
> 
> https://fr.wikipedia.org/wiki/Tri_de_cr%C3%AApes

=============================================================================
#!/usr/bin/python3

import random

nb = int(input('Nombre de cr�pes : '))

crepes = list(range(0, nb))     # crepes = [0, 1, ..., nb-1]
random.shuffle(crepes)          # l� elles sont probablement dans le d�sordre

desordre = nb   # nombre de cr�pes non tri�es

# Boucle infinie, mais dont on sortira par exit(0) quand tout sera tri�.
while True:
    # Les derni�res cr�pes sont dans l'ordre si crepes[i] == i
    while desordre > 0 and crepes[desordre - 1] == desordre - 1:
        desordre = desordre - 1

    print("Les cr�pes sont dans l'ordre suivant :", crepes,
            f"({nb - desordre} ok)")

    ###################################################################
    # Le seul point de sortie du programme est ici
    ###################################################################
    if desordre == 0:
        print("Les cr�pes sont bien ordonn�es.")
        exit(0)
    ###################################################################

    # On va chercher la plus grande cr�pe parmi celles qui ne sont
    # pas encore tri�es
    maxcrepe = max(crepes[:desordre])
    maxindex = crepes.index(maxcrepe)
    if maxindex == 0:
        # La plus grande des cr�pes non tri�es est en haut de la pile,
        # on va renverser l'ensemble des cr�pes non tri�es pour la
        # mettre en bas.
        retourner = desordre
    else:
        # Le plus grande des cr�pes non tri�es n'est pas en haut de la
        # pile, on va retourner suffisamment de cr�pes pour l'y mettre.
        retourner = maxindex + 1

    print(f"On retourne {retourner} cr�pes.")
    crepes[:retourner] = crepes[:retourner][::-1]

# Cette ligne du programme n'est jamais atteinte
=============================================================================

-- 
Olivier Miakinen