Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| teaching:progappchim:tris [2016/02/27 04:43] – villersd | teaching:progappchim:tris [2022/12/09 14:25] (Version actuelle) – villersd | ||
|---|---|---|---|
| Ligne 5: | Ligne 5: | ||
| ===== Tri à bulles ===== | ===== Tri à bulles ===== | ||
| - | * [[http://fr.wikipedia.org/ | + | * [[wp>fr: |
| <note tip> | <note tip> | ||
| Ligne 12: | Ligne 12: | ||
| Version récursive de l' | Version récursive de l' | ||
| - | <sxh python; title : quicksort_01.py> | + | <code python quicksort_01.py> |
| #! / | #! / | ||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
| Ligne 29: | Ligne 29: | ||
| from numpy import random | from numpy import random | ||
| a=random.randint(0, | a=random.randint(0, | ||
| - | print a,len(a) | + | print(a,len(a)) |
| b=quicksort(a) | b=quicksort(a) | ||
| - | print b,len(b) | + | print(b,len(b)) |
| - | </sxh> | + | </code> |
| On peut aussi rendre la fonction encore plus compacte, mais moins lisible : | On peut aussi rendre la fonction encore plus compacte, mais moins lisible : | ||
| - | <sxh python> | + | <code python> |
| ... | ... | ||
| def quicksort(li): | def quicksort(li): | ||
| Ligne 43: | Ligne 43: | ||
| return quicksort([x for x in li[1:] if x <= pivot]) + [pivot] + quicksort([x for x in li[1:] if x > pivot]) | return quicksort([x for x in li[1:] if x <= pivot]) + [pivot] + quicksort([x for x in li[1:] if x > pivot]) | ||
| ... | ... | ||
| - | </sxh> | + | </code> |
| + | |||
| + | Variante avec choix aléatoire du pivot (en fait de son index dans la numérotation de la liste) : | ||
| + | <code python> | ||
| + | ... | ||
| + | pivot_index = randrange(len(li)) | ||
| + | pivot = li[pivot_index] | ||
| + | ... | ||
| + | </code> | ||
| Références : | Références : | ||
| * [[http:// | * [[http:// | ||
| - | * [[http:// | + | * [[wp>Quicksort|Wikipedia en]] et [[wp>fr: |
| ===== Comparaison des tris ===== | ===== Comparaison des tris ===== | ||
| Ligne 54: | Ligne 62: | ||
| {{ https:// | {{ https:// | ||
| + | Cf. aussi cette autre visualisation : [[https:// | ||
| + | | {{ https:// | ||
| + | |||
| + | ===== Algorithmes inefficaces ===== | ||
| + | * [[wp> | ||
| + | |||
| + | ===== Références ===== | ||
| + | * Sources de codes (qualité à vérifier) [[https:// | ||
| + | * [[https:// | ||