Comment trier manuellement un numéro de la liste en Python?
Spécifications: Ubuntu 13.04, Python 3.3.1
De fond: total débutant en Python, est venu à travers ce "tri manuel" problème.
Ce qui m'a demandé de faire: "demandez à l'utilisateur d'entrer les 3 valeurs numériques et de les stocker dans 3 variables différentes. Sans l'aide des listes ou des algorithmes de tri, de trier manuellement ces 3 nombres du plus petit au plus grand."
Ce que j'ai été en mesure de venir avec:
number = input("Please enter 3 numbers: ")
number = list(number)
a = int(number[0])
b = int(number[1])
c = int(number[2])
new_l = []
if a > b and a > c:
new_l.append(a)
if b > c:
new_l.append(b)
new_l.append(c)
else:
new_l.append(c)
new_l.append(b)
print(new_l)
if b > a and b > c:
new_l.append(b)
if a > c:
new_l.append(a)
new_l.append(c)
else:
new_l.append(c)
new_l.append(a)
print(new_l)
if c > a and c > b:
new_l.append(c)
if a > b:
new_l.append(a)
else:
new_l.append(b)
new_l.append(a)
print(new_l)
Donc ma question est:
Je me rends compte que ma solution est extrêmement limitée. D'abord il ne peut traiter que 3 chiffres, car une fois que la chaîne d'entrée est converti en une liste, il n'y a aucun moyen de briser tous les chiffres dans les nombres individuels de l'utilisateur prévu. Deuxièmement,à l'aide de cette solution, le vendeur est contraint de énumère tous les scénarios possibles pour les 3 nombres pour comparer les uns avec les autres, ce qui pourrait être très rigide si par exemple, le script devaient être modifiées pour accepter la saisie de l'utilisateur de+ de 100 numéros.
Si vous pouviez partager quelques conseils concernant la question ci-dessus, ou sur la façon de résoudre ce problème d'une manière différente, je serai très reconnaissante! Je vous remercie.
- "Sans l'aide des listes ou des algorithmes de tri": Si vous souhaitez trier quelque chose sans en faire le tri?
- La façon dont j'ai compris la question, c'est que nous sommes priés de ne pas utiliser .méthode sort() ou triés en fonction de (), mais pour trier la liste de numéro manuellement?
- Mais il est dit que vous ne pouvez pas utiliser des listes soit, alors, comment allez-vous stocker les numéros?
- Oh j'ai raté la liste de la partie. Alors ma solution n'est pas bonne car j'ai utilisé de la liste en elle. Son oeil aiguisé! Je vous remercie.
Vous devez vous connecter pour publier un commentaire.
Pour les trois éléments, vous pouvez utiliser
max
etmin
de les trier:Si vous ne souhaitez pas utiliser un algorithme de tri mais il peut utiliser des listes, vous pourriez juste faire sortir l'élément le plus petit à chaque fois et de le stocker dans une nouvelle liste:
C'est assez inefficace, mais il fonctionne.
À l'aide de l'Algorithme de Tri Bubble: